Все «Голоса свыше» Хабра за последние 10 лет

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

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

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

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

Все «Голоса свыше» Хабра за последние 10 лет - 1

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

Голос свыше

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

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

Если посмотреть на результат 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]

Все «Голоса свыше» Хабра за последние 10 лет - 2

[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]

Немного прокачали плашки под публикациями:Все «Голоса свыше» Хабра за последние 10 лет - 3Делитесь же скорее своими сайтами, твиттерами и гитхабами!

[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]

Все «Голоса свыше» Хабра за последние 10 лет - 4 С новым годом!

[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]

Все «Голоса свыше» Хабра за последние 10 лет - 5

[3 ноября 2011]

Все «Голоса свыше» Хабра за последние 10 лет - 6

[2 ноября 2011]

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

[1 ноября 2011]

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


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

Автор:
RealPeha

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js