Небольшой новогодний подарок для всех обитателей КОНТа. Возможно, кому-нибудь пригодиться.
Я написал небольшое расширение для браузера FireFox, позволяющее присваивать статус встреченным в КОНТовских комментариях собеседникам. Каждый статус имеет цветовую маркировку, что позволяет сразу видеть присвоенный статус в дальнейших дискуссиях — имя пользователя будет выделяться этим-же цветом. Выглядит это примерно так:
Расширение лежит на GitHub, скачать можно здесь.
После установки (пока ставится только на ESR версию, см ниже) расширения, около каждого имени пользователя в комментариях появляется маленький треугольничек. При наведении на него курсора — открывается меню, в котором верхней строкой отображается имя (не псевдоним) пользователя, далее перечень статусов, которые ему можно присвоить и пункт «убрать статус». После того, как статус присвоен, цвет фона, на котором отображается имя будет изменен.
Первоначально, я хотел сделать эдакий «невидимый бан» - просто, чтобы не утруждать себя запоминанием каждого тролля и провокатора — и игнорировать все их проявления не вчитываясь. Многие из них даже отправку в бан воспринимают как знак внимания и оценку их усилий — а вот о присвоении статуса они узнать никаким образом не могут. Но попробовав, я понял что жизнь несколько сложнее, откровенных троллей обычно неплохо видно и на глаз (хотя выделить их красненьким — это еще психологически полезно, помогает от истощающих эмоций -:), и есть немало людей, которые порой произносят важные вещи — но отвечать им лучше, учитывая индивидуальные особенности. Поэтому, я добавил еще ряд статусов, стараясь сделать их максимально универсальными — не зависящим от точки зрения и персональных воззрений пользующегося. Статус отвечает на вопрос «как реагировать» на человека, а не «почему» - соответственно, причины могут быть у каждого свои. Получилось так:
1. Игнор — это единственный статус, подразумевающий что на персонажа не надо реагировать, что бы он не вытворял. Я лично игнорирую тех, кто не говорит ничего осмысленного и сам не способен слушать и понимать. Так-же я игнорирую тех, кто заставляет меня испытывать слишком много истощающих эмоций — это неправильно, но пока я эту уязвимость побороть не смог.
Все остальные статусы — это люди, которым можно отвечать, хотя для некоторых — только в случае веских причин, и надо иметь в виду некоторые особенности:
2. Хам - человек всегда готов без видимой причины нахамить ближнему своему. Лично я стараюсь с такими людьми заранее выбирать подчеркнуто вежливый и лаконичный стиль общения. Это часто позволяет избежать оскорблений - так как хамство в ответ на вежливость выглядит исключительно глупо.
3. Обидчивый — человек склонный видеть оскорбления в любом вполне нейтральном замечании - например может воспринять поправку или уточнение как обвинение во лжи. Рецепт такой-же - стараться не давать поводов.
4. Религиозный — я с уважением отношусь к по-настоящему верующим людям и совершенно не хочу задевать из чувства. Но при этом считаю себя в полном праве обдумывать и обсуждать различные аспекты религии. Поэтому я просто не упоминаю религию ни в каком виде в беседах с конкретно этими пользователями. Разумеется, это относится к настоящим религиям - скажем, чувства «верующих в святой госдеп» я не уважаю совершенно и готов задевать их хоть по сто раз на дню -).
5. Упертый - персонаж, в силу тугодумия или скорее в силу эмоциональной незрелости плохо воспринимающий рассуждения, которые приводят к выводам отличным от его "точки зрения". Рецепт - излагать мысли короткими, однозначно трактуемыми предложениями, не использовать терминов с нечеткие значением, не допускать посторонних рассуждений и даже не имеющих прямого отношения к излагаемой мысли замечаний.
6. Не закончен разговор - не знаю, имеет ли это значение для остальных, но мне важно помнить, с кем у меня состоялся незаконченный разговор и мяч остался на моей стороне. Я предпочту в новую полемику не вступать, не отдав долги.
7. Хороший собеседник — эта метка символизирует некий кредит доверия. Если человек один раз продемонстрировал способность здраво и осмысленно беседовать — я склонен это учитывать, даже если в дальнейшем он поведет себя как-то странно.
Информация о присвоенных статусах сохраняется в кеше браузера ( в IndexedDB адресном пространстве расширения) — таким образом, доступа к этим данным не имеет никто, кроме данного расширения — в том числе и любые вставленные в страницу скрипты. Т.е. считать эти данные и просто узнать об их существовании не может даже КОНТ. Данные сохраняются при закрытии браузера, но будут утеряны если Вы сделаете полную очистку кеша. При этом работа расширения вообще не зависит от того, залогинен ли пользователь на КОНТ.
В принципе, перечень статусов можно изменить, но делать это пока придется вручную — отдельного инструмента я для этого не делал, т. к. лично мне он не нужен, а возни там довольно много. Прежде чем приниматься за такую работу, хотелось-бы понять, есть ли вообще кто-то, кому этот инструмент нужен. Единственный дополнительный функционал в расширении — это возможность Экспорта и Импорта данных, см настройки расширения.
На данный момент присутствуют существенные технические ограничения.
Во-первых, add-on пока работает только под FireFox, по идее должен работать начиная с 52 версии, но я проверял только с 56.
Во-вторых я пока не загружал его на addons.mozilla.org, соответственно он не подписан. Для использования неподписанных расширений надо выключить параметр xpinstall.signatures.required. Это, говорят, срабатывает только на ESR либо на девелоперских версиях, но под линуксом у меня сработало без дополнительных телодвижений. Если найдутся те, кому это ограничение мешает — пишите в комментарии, я этим займусь.
Вообще, учитывайте, что это бета-версия, в ней есть ряд недочетов. В частности, расстановка менюшек на странице иногда просто не срабатывает — причину я понять пока не смог, надо просто обновить страницу. Но важнее, видимо, недостаток функционала.
Честно говоря, когда я только задумал эту поделку, я полагал что сейчас быстренько за несколько вечеров ее напишу. Но выяснилось что я несколько переоценил свое знание яваскрипта и всплыла масса неизвестных мне ранее подробностей относительно потрохов браузера. Так что изготовление более-менее функциональной версии заняло почти пол-года. И хуже того, написав ее я понял, что лично мне этой функциональности уже не хватает, что собеседников очень неудобно классифицировать с помощью одной-единственной метки, что неплохо бы сделать возможность вести историю пользователя, присваивать ему теги, нужна возможность просмотра истории и.т.д и.т.п. - в общем, всяких улучшений и наворотов можно придумать еще вагон, и не понятно, какие из них действительно нужны, а реализовать их — это довольно много возни.. Да к тому-же — администрация ресурса не спит, и легко может в любой момент изменить верстку страниц, в результате чего расширение может прекратить функционировать так и не начав работать. Поэтому я решил выложить первую версию в ее нынешней аскетичной функциональности и послушать, что мне посоветуют.
По всем вопросам прошу в комментарии.
С Новым Годом!
Оценили 59 человек
81 кармы