Pull to refresh

Comments 23

Без новых «невидимых» тегов, которые бы поддерживал Хабр, этого, вероятно, не сделаешь. Т.е. каждый комментарий в тексте статьи должен помещаться в отдельный тег, который бы содержал ссылку на оригинальный комментарий. При этом сам тег и его служебная информация не должна быть видна в тексте статьи. Если не делать подобной привязки, то рано или поздно все сломается (хабраюзер отредактирует комментарий и его уже нельзя будет по тексту поймать в топике).
Про редактирование комментариев.
Можно сделать публикацию их только после окончания времени редактирования комментария. Но у этого решения есть как плюсы, так и минусы.
Насчет тегов согласен.
Можно сделать так. Программа публикует комментарий сразу при его поступлении и в своих недрах держит каждый комментарий в своей отдельной ячейке. Через 3 минуты (это время разрешения на редактирование комментария) просто переопубликовывает его на месте прежнего, вне зависимости изменился он или нет.
Программа не обязана работать в режиме амнезии, и вполне может запомнить, какой комментарий в какое место текста вставляла.
Да, но тогда пост должен собираться только программой, т.е. через стандартный интефейс его уже не отредактируешь. Да и данные придется локально хранить — БД нужна или файл такой же маркированный. Просто придется иметь две копии топика, вместо одной (текстовый топик на хабре + маркированный где-то снаружи)
а в чем проблема?
вариант решения:
1. (парсим/получаем через api/из БД) комментарии
2. сортируем по дате: опираемся на данные хабра, думаю они не станут подменять даты)
3. исключаем из массива комментарии с отрицательной кармой (и возможностью редактировать)
4. собираем текст
5. публикуем
6. профит…
может не надо усложнять простые вещи?)
п.с.: сама прога весит демоном и периодически парсит комментарии, сравнивая их количество с предыдущим результатом
Я думаю, надо как-то фильтровать комментарии перед вставкой в текст, и не тащить все подряд. Либо комментарии, вставляемые в текст, должны быть первого уровня, либо они должны быть отмечены специальной последовательностью букв вначале.
Потому что далеко не любой комментарий означает именно уточнение поста.
Интересное предложение. Но мне кажется, что суть письма дяди Федора заключается в том, текст получается смешным в результате набора часто несвязанных по смыслу фраз и предложений.
Если не использовать все комментарии, то комментаторы расстроятся…
Но в любом случае настоящий автор подобного топика должен обговорить условия попадания комментария в текст. Интереснее все же публиковать все (неотрицательные).
Текст письма получился смешным как раз-таки из-за того, что он был связан. Родители не заметили переходов между кусками текста — а потому и поверили в получившийся бред.

Поэтому надо дать комментаторам возможность управлять тем, будет ли их комментарий включен в текст.
Да, это хорошо скажется для связанности.
Комментатор ставит 123, # или другой символ, что будет являться пропуском в текст письма.
Думаю, голосование четко показало, что 1) задача решаема 2) идея понравилась не всем
Мне кажется, хабр не то место, где стоит проводить такие необычные эксперименты, даже на 1е апреля. Тем более, я считаю, осмысленности в тексте не будет.
Мне все понравилось:
1. Задача оказалась вполне решаема и это хорошо.
2. Про то, что получится в результате (насчет осмысленности), можно будет сказать только после реализации. Может быть как вау, так и ох.
3. То что статья сейчас в минусах, это показатель того, что на Хабре много людей, занимающихся серьезными делами. Идея, предлагаемая в статье на самом деле не совсем серьезная. Это шутка, развлечение, которым не будет заниматься серьезный человек. Реализация, это удел легких на подъем программистов, у которых есть немного свободного времени и желание повеселить людей в день смеха. А серьезные люди вполне адекватно реагируют на подобные предложения. Я их понимаю.
4. Серьезных людей действительно много, но где еще, как не на Хабре, где концентрация программистов очень большая предлагать подобную идею.
5. Цель статьи была в том, чтобы донести прикольную идею, которую может быть кто-то реализует. Можно это сделать и на другом ресурсе, но тут было бы веселее, так как комментаторы здесь отменные.
6. Для меня главным было то, что в ответе на последний вопрос голосования/опроса было значение больше, чем ноль. Результат превзошел ожидания во много раз.
Я бы хотел связать Ваши пункты 3 и 5. Здесь, безусловно, есть разного плана люди, как легкие на подъем и веселые, так и серьезные бородатые умные дядьки, но, позвольте, это не повод разводить балаган именно там, где основная масса — как раз таки серьезные тематические посты. Предполагаю, что именно для исключения подобных «экспериментов» и была введена система приглашений. И да, Можно это сделать и на другом ресурсе. Я всегда лояльно относился ко всем типам постов на хабре по принципу «больше — лучше», но здесь я вижу некий перебор. Извините, просто мнение
З.Ы.Положительное кол-во проголосовавших не так уж и о многом говорит, имхо
Вполне нормальное мнение. Но даже бородатые дядьки (не все, только некоторые) 1 апреля допускают шутки, вольности и другие развлечения. И думаю, что это все же не балаган, а обычное предложение в написании программы для работы с текстом.
Я предлагаю сделать отдельную базу данных для хранения таких вот постов, и каждый пост, автор которого хочет использовать такую функцию, будет попадать туда. Соответственно, именно там будут хранится комментарии, для каждого поста желательно для быстродействия создавать отдельную таблицу. А дальше, при переходе на страницу поста, скрипт просто тупо в цикле распечатывает те комментарии, у которых «оценка» неотрицательная. То есть техническая реализация достаточно проста.

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

По поводу попадания не всех комментариев, это уже второе такое предложение.
mayorovp чуть выше предложил брать в топик или комментарии первого уровня или автор комментария помечает в самом начале спецсимволом — хочет он, чтобы комментарий был в тексте или нет.

А в целом, идея очень интересна — можно вести как обычное и привычное многим обсуждение, так и иметь возможность публикации комментария.
А зачем так усложнять?

К примеру, userscript для автора поста подойдет?

Инициатор поста открывает свой любимый firefox, скрипт ему пробегается по «отмеченным» комментариям, открывает пост на редактирование и вставляет в конец текста, можно вместе с именами юзеров. Инициатор просматривает, выкидывает офтопики, бац! статья обновилась.

И никаких отдельных БД и имитаций гугельдока.
Необходимо решить проблему одинакового времени.
А что это за проблема? В базу вам залезть вам всё равно никто не даст, так что придётся парсить страничку. А на странице поста они же в каком-то порядке да отображаются. Более того, этот порядок даже не меняется при обновлении страницы. Ну или я исключительно в правильную фазу луны на странички захожу.

Ну и с проблемой заминусованных комментариев тоже особо париться не нужно. Хабр может и не поддерживает скрытые тэги, но никто не мешает генерировать полный список локально, комментировать заминусованные комментарии и вырезать их перед отправкой.

С технической точки зрения вообще никаких сложностей. Всё скучно и однообразно. Только вот зачем? (:
Одинаковое время имелось в виду то, что часто бывают случаи, когда несколько комментариев публикуются с одинаковым временем, секунды не показываются, да и если бы показывались, тоже возможна ситуация публикации секунда в секунду.
Пример, ваш комментарий опубликован в 00:48, предыдущий в 00:47, но могло бы быть и совпадение с точностью до минуты. Оба комментария первого уровня встанут друг за другом и в принципе понятно, кто из них раньше. Если бы эти комментарии, имеющие одинаковое время находились в разных ветках обсуждения, то понять какое их них появилось раньше — трудно. Для классического обсуждения это не имеет большого значения, а вот для написания поста из комментариев, где смысл изменится от перестановки их местами — имеет. Надеюсь понятно объяснил. Все это написано для случая, когда необходимо парсить страницу.

А зачем — 1 апреля! В этот день очень много делается того, о чем можно задать вопрос — зачем?
Но при этом такие комментарии были в любом случае написаны независимо, и ни один автор не видел комментария другого. Так что ни одно из двух взаимных расположений комментария в посте не будет иметь преимуществ над другим. А значит — их и располагать можно в любом порядке.
Это понятно, но чтобы была хоть какая-то система, предложил сортировку по времени.

С другой стороны, можно сделать вариант случайной сортировки всех комментариев, наверно тоже будет что-то интересное. Только по какому критерию выбирать этот интерес?
Случайная сортировка не пойдет. Условие «дописывания в конец» означает, что если автор комментария A видел в теле поста комментарий B — то комментарий A должен оказаться дописан строго после комментария B.

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

Еще один вариант (для statefull проги) — просто дописывать при каждом сканировании новые комментарии в конец (программа должна помнить, какие комментарии новые — а какие она уже видела и дописала).
Sign up to leave a comment.

Articles