Как-то я заметил, что на Хабре я подписан на десяток хабов и на еще больше блогов. Я удивился, ведь я на все это не подписывался. Ладно, возможно, подписки на хабы были сделаны мной еще в первые дни с момента регистрации, но вот на блоги я точно не подписывался. Нет, ну реально. Мне это показалось очень странным, в частности, из-за того, что подписки были исключительно на корпоративные блоги, и большинство из них занимали не последнее место в рейтинге. Но я не стал забивать себе этим голову и просто отписался от всех. Причем от хабов тоже.

Вообще я никогда не видел в этом какой-то пользы, потому что, в принципе не захожу на вкладку «Моя лента», а читаю только из всего потока. Никогда не знаешь, в какой хаб может попасть годная и интересная для меня статья, да и в целом статей публикуется, не прям, чтобы много.

Но эта статья не об этом. Она о том, что я увидел, когда однажды, случайно, открыл раздел «Моя лента»…

И… там не было ни одной статьи. Да, вот такая неожиданность. По сути вот что я увидел на этой странице



Помимо стандартных блоков по типу «Хабр Карьеры» и «Новости», вся страница была заполнена сообщениями от команды Хабра, которые иногда временно появляются в начале вашей ленты. Но в данном случае, тут были даже те сообщения, которые давно уже неактуальны и не отображаются пользователям!

Голос свыше


Если вы пришли сюда просто, чтобы посмотреть на сам список, то можете пропускать этот раздел и переходить к следующему

Возможно, вы не знали, но такое сообщение называется «Голос свыше». Обычно команда Хабра пишет там какие-то поздравления (например с Новым Годом), объявляет о новых фичах ну или просто оставляет приколюхи. В общем интересно. Но я заметил еще кое-какие их особенности с точки зрения реализации.

Если посмотреть на результат GET запроса к habr.com/kek/v2/articles/?custom=true&fl=ru&hl=ru&page=1, который возвращает метаданные всех статей для 1 страницы, то можно увидеть, что «Голоса свыше» являются статьями и выглядит так:

{
  "id": "599185",
  "timePublished": "2022-01-03T12:33:31+00:00",
  "isCorporative": false,
  "lang": "ru",
  "titleHtml": "",
  "editorVersion": "1.0",
  "postType": "voice",
  "postLabels": [],
  "author": null,
  "statistics": null,
  "hubs": [],
  "flows": [],
  "relatedData": {
    "unreadCommentsCount": 0,
    "vote": {
      "value": null,
      "voteTimeExpired": "2022-02-02T12:33:31+00:00"
    },
    "bookmarked": false,
    "canComment": false,
    "canEdit": false,
    "canVote": true,
    "canViewVotes": false
  },
  "leadData": {
    "textHtml": "???? Если у вас есть инвайт, можете подарить его на Новый год кому-то интересному из <a href=\"https://habr.com/ru/sandbox/\">Песочницы</a>",
    "imageUrl": null,
    "buttonTextHtml": null,
    "image": null
  },
  "status": "published",
  "plannedPublishTime": null,
  "checked": null,
  "tags": [
    {
      "titleHtml": "песочница"
    }
  ]
}

Получается что это статья типа voice, без заголовка, без автора, без хаба и с тегом «песочница» (который, к слову, не всегда такой для подобных статей). У него даже есть айди, правда при попытке открыть его по ссылке habr.com/ru/post/599185 получаем «Страница не найдена». Ну ладно.

Еще можно заметить одно интересное поле unreadCommentsCount. Из названия понятно что это, так же понятно почему оно 0, но всегда ли? Оказывается, если взять один из очень старых «Голосов свыше», то там это поле может быть не 0! Вот например, самое старое, которое мне доступно. Как же давно это было…

{
    "id": "131700",
    "timePublished": "2011-11-01T13:19:51+00:00",
    "isCorporative": false,
    "lang": "ru",
    "titleHtml": "",
    "editorVersion": "1.0",
    "postType": "voice",
    "postLabels": [],
    "author": null,
    "statistics": null,
    "hubs": [],
    "flows": [],
    "relatedData": {
        "unreadCommentsCount": 7,
        "vote": {
            "value": null,
            "voteTimeExpired": "2011-12-01T13:19:51+00:00"
        },
        "bookmarked": false,
        "canComment": false,
        "canEdit": false,
        "canVote": false,
        "canViewVotes": false
    },
    "leadData": {
        "textHtml": "<font color=\"80a1b0\">100 000 пользователей на Хабрахабре</font>",
        "imageUrl": null,
        "buttonTextHtml": null,
        "image": null
    },
    "status": "published",
    "plannedPublishTime": null,
    "checked": null,
    "tags": [
        {
            "titleHtml": "Хабрахабр"
        }
    ]
}

Показывает как будто там 7 комментариев. Возможно, когда-то и кто-то все таки сумел оставить там комментарий, но сейчас их нельзя даже прочитать запросом habr.com/kek/v2/articles/131858/comments

{
    "code": 403,
    "message": "Voice cannot be commented",
    "data": {},
    "additional": [
        "POST_VOICE_NOT_COMMENTED"
    ]
}

Что немудрено, ведь в relatedData даже отключен флаг canComment. Но это не всё, еще есть флаг canVote, и как можно заметить в первом войсе, который я скинул, он равен true! А это значит, что за этот войс даже можно проголосовать «За» или «Против». Что я и сделал POST запросом habr.com/kek/v2/articles/599185/votes/up и, к моему удивлению, оно сработало. Теперь там стоит один единственный голос). Правда его все равно нельзя никак увидеть на UI.

Но самый забавный момент, что у всех этих сообщениях editorVersion стоит 1.0! Это значит, что даже админы не любят новую версию редактора и до сих пор пользуются старой. Вот это ирония

Так что же там с «Моей лентой»


Сразу я написал, что вся «Моя лента» состояла из дефолтных блоков и «Голосов свыше», но на самом деле это немного не так. В ней по стандарту было 50 страниц, которые состояли из каких-то почти рандомных старых постов от почти рандомных авторов. К примеру, большая часть страниц, которые я открывал, состояла из статей пользователей @Shevev и @marks. Конечно, там изредка попадались и другие «избранные» авторы, но это все равно очень странное поведение.

Ради интереса я перебрал все статьи на 50 страницах и посчитал сколько постов от каждого автора

{
   "marks": 229,
   "Shevev": 226,
   "Milfgard": 197,
   "tolikmg": 94,
   "Logomachine": 59,
   "iQBTechnologies": 38,
   "alex_mac_13": 36,
   "Finom": 18,
   "psixodelkin": 4,
   "ASSASSIN999": 4,
   "Kuuuzya": 3,
   "mgreview": 2,
   "gumanitarii": 2,
   "HiTechMg": 2,
   "PetrosyanArsen": 2,
   "MagisterLudi": 2,
   "Ellanorsh": 2,
   "AlexeyNadezhin": 2,
   "chopwithmash": 1,
   "Smallwall": 1,
   "radiolok": 1,
   "Medgadgets": 1,
   "Meklon": 1,
   "Danya_Baranov": 1,
   "mgistr": 1,
   "Lottchen": 1,
   "dopoluchki": 1,
   "JosephK": 1,
   "mn_2014": 1,
   "schida": 1,
   "amarenkov": 1
}

Интересно почему именно эти авторы и по какому принципу оно вообще мне отобразило их. Прям загадка от Жака Фреско.

Но тем не менее среди всего этого и были «Голоса свыше», которые я успешно собрал со всех 50 страниц простеньким скриптом, запущенным прям в консоли браузера:

let allVoices = []

for (let i = 1; i <= 50; i++) {
    await fetch(`https://habr.com/kek/v2/articles/?custom=true&fl=ru&hl=ru&page=${i}`).then((res) => res.json()).then((res) => {
        const articles = Object.values(res.articleRefs)
        const voices = articles.filter(art => art.postType === 'voice')
        const voicesTextHtml = voices.map(art => art.leadData.textHtml).reverse()

        if (voicesTextHtml.length) {
            allVoices = allVoices.concat(voicesTextHtml)
        }
    });
}

console.log(allVoices.join('\n'))

Голоса свыше за последние 10 лет


И в итоге у меня получится вот такой вот списочек вплоть до 1 ноября 2011 год

[3 января 2022]

???? Если у вас есть инвайт, можете подарить его на Новый год кому-то интересному из Песочницы

[31 декабря 2021]

???? Заходите в новогодний Хабрачат ????

[22 декабря 2021]

???? Заходите на полезный и классный вебинар о визуальных приёмах в текстах!

[16 декабря 2021]

➡️ Вебинар: «Как писать на Хабр о сложном»

[1 декабря 2021]

Карма ⩾10? Стань Анонимным Дедом Морозом ????

[25 ноября 2021]

➡️ Вебинар: «Хабр для взрослых»

[24 ноября 2021]

???? Завтра в 16:00 вебинар Хабра «Хабр для взрослых». Вы с нами?

[22 ноября 2021]

???? Don't panic — рейтинги скоро пересчитаются

[16 ноября 2021]

????‍???? У авторов на Хабре свой путь — и этот путь на «Технотекст 2021». Мы ждём вас!

[3 ноября 2021]

???? Статьи в Песочнице ждут экспертную оценку и инвайт!

[27 октября 2021]

???? Проверьте, готова ли ваша статья сразиться за победу в «Технотекст 2021»

[19 октября 2021]

???? Готова ли ваша статья участвовать в «Технотексте 2021»?

[11 октября 2021]

Хорошие статьи ждут инвайтов экспертного сообщества в Песочнице

[4 мая 2021]

%username%, а ты уже попробовал новую версию Хабра?

[12 мая 2021]

А панорамы Байконура и космические музеи можно посмотреть здесь. С Днём Космонавтики, друзья!

[31 декабря 2020]

С Новым Годом! Habr ❤ you

[26 мая 2020]

С Днём Рождения, Хабр! ❤ Мы тебя любим!

[31 декабря 2019]

••• −• −−− •−− −•−− −− −−• −−− −•• −−− −− •−•−•− •••• •− −••• •−• −−••−−

[31 декабря 2019]

Для скучающих и отмечающих есть Хабрачат в Телеграме

[4 октября 2019]

Баги по релизу считают

[13 сентября 2019]

День программиста тёмен, да ночь светла.

[9 сентября 2019]

Багов бояться — релиз не видать. С Днём Тестировщика!

[24 апреля 2019]

Сколько нужно экспертов Microsoft MVP, чтобы заменить лампочку? Явно меньше, чем для проведения DotNext.

[28 марта 2019]


[8 марта 2019]

✿ܓ ✿ܓ С 8 марта, хабрадевчонки! ✿ܓ✿ܓ✿ܓ

[27 февраля 2019]

Где можно увидеть сразу кучу авторов из хаба Java, от и до ? На JPoint.

[31 декабря 2018]

11111100011 is here. Habr ❤ you

[2 ноября 2018]

Семь раз протести, один раз задеплой. Особенно когда тестируешь блокчейн-проект.

[26 октября 2018]

Specs, bugs, rock'n'roll: код выглядит как рок-тексты, когда он на языке Rockstar

[17 октября 2018]

«Joker» — это «шутник», но 1500 участников Java-конференции Joker — это вам не шуточки

[14 мая 2018]

Астрологи объявили неделю конференций: сразу после Heisenbug пройдёт HolyJS

[12 февраля 2018]

Новые хабы: F#, Clojure, CoffeeScript, Gradle, Hadoop, Matlab, Puppet, TypeScript и Xamarin — ставьте лайки, подписывайтесь.

[8 декабря 2017]

Выбагован баг, да не по-гейзенбаговски. Надо баг перепофиксить да перебаговать. Кто баг перебагует, тому полхабра багов и треть Гейзенбага бесплатно!

[4 декабря 2017]

Создали хаб Vue.js — уже можно подписываться и переносить публикации

[8 августа 2017]

НЛО помнит о традициях

[7 августа 2017]

НЛО прилетело и испекло хлебушек

[30 мая 2017]

Видите рейтинг всех постов? Нет? А он есть.

[3 апреля 2017]

JUG.ru посылает лучи Java-добра от Сибири до Москвы: ловите их на JBreak и JPoint

[28 марта 2017]

СЛАВА ТАРАНТУЛУ! \o

[24 марта 2017]

Ужасно, когда чередование плиток на тротуаре не совпадает с твоим нормальным шагом.

[14 февраля 2017]

НЛО требуются инженеры

[17 мая 2016]

Хороший, Плохой, Злой, Хабрахабр.

[2 марта 2016]

Хабрахабр родился, чтобы умереть.

[31 декабря 2015]

С Новым годом! С новым кодом!

[8 сентября 2015]

Немного прокачали плашки под публикациями:Делитесь же скорее своими сайтами, твиттерами и гитхабами!

[18 мая 2014]

Два поста с рейтингом +2 в лучшем за сутки. Пишите сейчас, это шанс.

[18 февраля 2014]

Пост ≠ статья. Статья — это жанр, а не название любой публикации.

[4 декабря 2013]

Друзья! Пожалуйста, улыбнитесь. И скажите кому-нибудь что-нибудь хорошее. Прямо сейчас.

[27 ноября 2013]

1 Bitcoin ≥ 1000$

[1 июня 2013]

А вы знали, что Ctrl+Backspace — удаление последнего слова?

[6 января 2013]

Для переводов есть специальный тип публикации «Переводы», помещать в хаб «Переводы» недостаточно.

[25 декабря 2012]

%username%, голосуя, думай головой, а не стадным инстинктом.

[1 марта 2012]

Как насчет смены пароля от аккаунта на Хабре в первый день весны?

[31 декабря 2011]

С новым годом!

[20 декабря 2011]

Теперь голосовать за карму можно только с кармой не ниже +15, за топики — не ниже +10.

[28 ноября 2011]

Никогда не отказывайтесь от своей мечты.

[27 ноября 2011]

I am the bone of my script.

[18 ноября 2011]

Хабрахабр — это система.

[15 ноября 2011]

the торт is a lie

[14 ноября 2011]

На выходных делали процессор, видеоплеер из подручных материалов и машину по завариванию чая для Хабраторта.

[8 ноября 2011]

Если пишешь про айти —
Ты на правильном пути!

[7 ноября 2011]


[3 ноября 2011]


[2 ноября 2011]

Имперской Речью мем «превѣдъ» записывается через ять, будучи смесью слов «привѣтъ», «медвѣдь» (и ещё, возможно, «вѣдать»), из которых каждое содержит ять въ этомъ мѣстѣ.

[1 ноября 2011]

100 000 пользователей на Хабрахабре



Лично мне было очень интересно перечитать все эти сообщения, некоторые из них довольно забавные. Также не понятно почему иногда их по 5 штук за месяц, а иногда всего 1 за год.

Комментарии (6)


  1. ZlodeiBaal
    10.01.2022 14:30
    +7

    Когда-то механика была такой: голосом Хабра может быть любой пользователь с максимальной кармой или рейтингом.
    habr.com/ru/post/374

    Но им нельзя пользоваться чаще чем раз в какое-то время.

    Раньше можно было заходить на страницу поста в голосе и комментировать ( mycod.net/index.php/answer/index/36994 ). Но мне кажется это пофиксили.


    1. RealPeha Автор
      10.01.2022 14:33
      +2

      Прикольно, спасибо за объяснение. Еще интересно что раньше оно называлось внутренним голосом)


  1. Boomburum
    10.01.2022 15:07
    +5

    «Внутренний голос» появился ещё в 2006 году, поэтому в посте явно не все голоса — только с 2011 года (как достать более старые я и сам не знаю)). Но в целом оно и сейчас работает (для лидера рейтинга), правда этим никто из пользователей почему-то не пользуется :)

    Раньше действительно можно было подобрать ID «голоса» и зайти «под кат», где вполне себе можно было писать комментарии — там иногда устраивали чатики для тех, кто знал о фиче. Но потом решили убрать это.

    В новой версии Хабра «Внутренний голос» превратился в «Голос свыше»:



    Что касается проблемы, описанной в начале поста: действительно, чтобы избавить новичков (которые только что зарегистрировались) вручную перебирать четыре сотни хабов, были сформированы так называемые пресеты — наборы хабов по тем или иным темам (фронт, бэк, администрирование и т.д.). Помимо хабов в пресеты входили и компании, которые больше всего писали по теме пресета. В упомянутом списке пользователей — как раз авторы компаний из пресетов, на которые вы подписались в самом начале.


    1. RealPeha Автор
      10.01.2022 15:19
      +1

      Мне кажется что даже сам Хабр немного забыл о том, что лидер рейтинга может писать "Голос свыше", т.к. не нашел упоминания об этом в "Помощи")


    1. RealPeha Автор
      10.01.2022 15:31
      +1

      По всей видимости раньше оно было тут http://www.habrahabr.ru/info/wiki/Внутренний_Голос но почему-то убрали


  1. Taritsyn
    10.01.2022 17:08
    +10

    12 октября 2007 года все мои коллеги и я были в недоумении, когда внутренний голос Хабра упомянул нашего работодателя…