Если нельзя оставить комментарий, но очень хочется, то можно

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



    Имя всему этому CommentAll. Если еще интересно — прошу под кат. Даже если не интересно, все равно загляните под кат, может быть, ещё рано делать выводы, а оставить свой гневный комментарий — это всегда пожалуйста.

    Как все было


    Выбирал я как раз подарок супруге, наткнувшись на сайт, продающий ночной проектор, проецирующий на потолок звездную галактику. Я был в шоке — его презентация на сайте купила меня. Вернувшись на сайт после того, как покрутил в руках то, что привез курьер и не найдя сходства с тем, что рекламировано на сайте, я увидел только статичные комментарии и форму, которая отправляет мой отзыв в никуда.

    Поучаствовать можно было лишь в издевательском опросе, вот и он:
    • Мы в восторге, теперь спим как в сказке
    • Оригинальный подарок, спасибо!
    • Отлично, что работаете круглосуточно
    • Обязательно куплю!
    • Заказывал, остались довольны, спасибо огромное

    В итоге задело это все меня, и появилась цель так просто это не оставить. Задумка расширения Commentall — это предоставить возможность интернет-аудитории общаться напрямую на сайтах, никуда не переходя, предупредить других пользователей сети о возможном размещении опасного контента, порой не точной или даже лживой информации, т.е. даже там, где сам автор не предусмотрел возможность комментирования или счел это лишним.

    Вместо тысячи слов о принципе работы самого расширения предлагаю посмотреть короткое минутное видео:



    Немного о технической стороне проекта


    Расширение написано под браузеры на движке WebKit, такие как Google Chrome( + его производные Яндекс.Браузер, Амиго, и т.д.), под Opera отдельный релиз, так как у Opera свой магазин расширений, и отличный от остальных Firefox, под все остальное пока нет, под IE даже не знаю стоит ли.

    Главная трудность, с которой пришлось столкнуться – современные браузеры не позволяют делать кроссдоменные запросы. Причем применительно для расширений большинство найденных в сети методов, таких как JSONP, CORS не действовали или не могли быть применены. Решение пришло от самого расширения – в браузерах на WebKit они состоят из «основной» части и так называемого «background’a». И получается, что все запросы, которые проходят в background’е – браузер пропускает. Осталось связать все это вместе. Выходит такая цепочка:



    Т.е. для всех запросов нужна была обертка в виде функции, которая принимала параметры запроса в background’e, формировала сам запрос и по завершении вызывала CallBack. В интернете нашел единственное рабочее решение – от romannurik и немного доработал его (для обработки POST запросов).

    часть Background - Xhrproxy.js
    var XHR_PROXY_PORT_NAME_ = 'XHRProxy_';
    function setupXHRProxy() {
         chrome.extension.onConnect.addListener(function(port) {
              if (port.name != XHR_PROXY_PORT_NAME_)
              return;
              port.onMessage.addListener(function(xhrOptions) {
                   var xhr = new XMLHttpRequest();
                   xhr.open(xhrOptions.method || "GET", xhrOptions.url, true);
                   if ( xhrOptions.method=='POST' ) {
                       xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                        xhr.setRequestHeader("Content-length", xhrOptions.params.length);
                        xhr.setRequestHeader("Connection", "close");
                   }
                   xhr.onreadystatechange = function() {
                        if (this.readyState == 4) {
                             port.postMessage({
                                  status: this.status,
                                  data: this.responseText,
                                  xhr: xhr,
                                  url: xhrOptions.url,
                                  post_data:xhrOptions.params
                             });
                        }
                   }
                   if ( xhrOptions.method=='POST' ) {
                        xhr.send(xhrOptions.params);
                   }else{
                        xhr.send();
                   }
              });
         });
    }
    function proxyXHR(xhrOptions) {
         xhrOptions = xhrOptions || {};
         xhrOptions.onComplete = xhrOptions.onComplete || function(){};
         var port = chrome.extension.connect({name: XHR_PROXY_PORT_NAME_});
         port.onMessage.addListener(function(msg) {
              xhrOptions.onComplete(msg.status, msg.data, msg.xhr, msg.url, msg.post_data);          
         });
         port.postMessage(xhrOptions);
    }
    
    setupXHRProxy();
    


    пример вызова из самого расширения:
    proxyXHR({
        method      : 'POST',
        url         : url,
        params      : post_data,
        onComplete  : CommentAll.loadComment
    });  
    


    и в файле manifest.json
      "background": {
              "scripts": ["includes/xhrproxy.js"]
        }
    


    Если у кого есть решения лучше – буду рад выслушать, адекватная критика только приветствуется. Если тема разработки расширений интересна, то буду писать продолжение.

    P.S.


    Для удобства комментирования внедрена социальная авторизация для Вконтакта, Facebook’а и Twitter’а. Но комментарий можно оставить и анонимно. Да, есть конечно и небольшое ограничение обусловленное пока малой аудиторией расширения – комментарии и заметки будут видны только тем, у кого тоже стоит расширение. В дальнейшем, планируется расширение функционала расширения (простите за тавтологию), но на самом деле перед ним уже сейчас открыты и другие возможности.

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

    И исключительно для тех, кто читал статью с самого начала этот исключительный опрос.

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Что Вы думаете о расширении CommentAll:

    Поделиться публикацией

    Комментарии 60

      +23
      О, в этом месяце еще не было.
        +6
        Идея не новая. Еще в 2000 году был подобный функционал у мессенджера под названием, ЕМНИП, Odigo. Были и другие попытки.
        С интеграцией с соцсетями может и взлетит, если будет большой охват. Раскручивайте!
          0
          Боюсь я в 2000 году не знал что такое интернет.
          +2
          Надо добавить возможность изменить местоположение кнопки "+" либо вообще убрать ее и реализовать в виде иконки на панели, т к на Хабре эта иконка почти целиком перекрывает обновление комментариев i.imgur.com/CdRmkaB.png
            +1
            Полностью согласен, исправим.
              0
              Исправлено! Chrome и все хромоподобное уже обновилось, у остальных модерация расширений ручная, но скоро и они сообразят.
                0
                Сделайте пожалуйста для Firefox, чтобы кнопка не мешала. А так — крутой плагин, сразу поставил.
                  0
                  Все сделали и версию новую залили, там у них ручная модерация, поэтому с обновлением всегда проблемы, как то раз выложил версию перед католическим Рождеством, ждать пришлось ну очень долго.
            +1
            А есть ли какая-то защита от спама?
              0
              Будет когда будет много спама!
                0
                На главной youtube он уже появился, по этому и спросил.
              +11
              Издевательский опрос ;-)
                +6
                Для чёрного пиара идеальная программа выходит. Непонятно же, кто именно оставляет комментарии, насколько это не специальная страница ВК для раскрутки себя и подавления конкурентов.
                  0
                  Так можно авторизоваться через три соц.сети в правом верхнем углу и иметь обратный трафик на Ваш аккаунт
                    0
                    А чем это отличается от обычных комментариев там, где они есть?
                      0
                      1. А там, где их нет?
                      2. Не контролируются владельцами сайта
                    +4
                    <paranoid>
                    Душевно… Это можно собрать статистику посещения разнообразных ресурсов хабрапользователями… А с учетом возможности авторизации по средствам соцсетей, типа ВК, так еще и персональную статистику по отдельно взятой личности…
                    </paranoid>
                      +1
                      <irony>Здравствуй, Неуловимый Джо! Давненько не виделись. ;-)</irony>
                        0
                        Параноику Джо от осознания своей паранойи легче не становится <_<
                          0
                          может он боится детекторов паранои :)
                      +1
                      Кстати, возникла у меня идея. Почему бы не логировать комментарии к каждой страничке, а потом не выводить их на отдельном сайте? Так будет возможность почитать комменты не ставя расширения. При отсутствии хостинга могу предоставить на своем серваке.
                        +3
                        Во многих городах есть Flamp от 2ГИС, к нему есть похожее расширение: можно читать комментарии с Флампа прямо на соответствующем сайте. Похоже на то, что вы хотите — независимая площадка комментариев, но всё-таки с модерацией, защитой от спама, аккаунтами со своей кармой и т. д. В Новосибирске вещь довольно известная, люди ей реально пользуются, а многие компании адекватно реагируют на комментарии. Или неадекватно. На Хабре они, кстати, тоже про себя писали.
                          0
                          Вот тут технически похожая идея, но для новостей и с модераторами.
                            0
                            Думаю, что на сайте самого проекта нужно показывать, какие сайты комментируют люди. Видели, как это сделано на Disqus?
                              +1
                              От недобросовестных сайтов спасает расширение WOT, но там только рейтинг сайта, без комментариев.
                                +1
                                Почему же нет? Есть. К примеру вот, репутация и комментарии по Хабрахабру.
                                  0
                                  Могу на примере наших сайтов (ниша — серьезные знакомства), вижу что там очень много троллей (пишут всякий бред) и активно работающих конкурентов, которые опускают сайт всякими небылицами. Да, есть и реальные пользователи — люди, которых мы удаляли за оскорбления других, часто идут туда и пишут как их бедных и несчастных обидели.
                                  Мое мнение — WOT может быть и нормально работает для очень крупных ресурсов. Но для небольших сайтов — это абсолютно не показательная вешь.
                                  +1
                                  Подкину идею (хотя не исключаю, что так и сделано): что бы не следить за пользователем, нужно отправлять на свой сервер не Url страничек, которые он открывает, а хеш от url. Не идеально, но лучше, чем ничего. Я, например, не буду пользоваться текущей версией именно из-за слежки, хотя попробовать хочется.
                                    0
                                    Тогда теряется ряд функционала, в т.ч. и будущего. Если только не специально для вас выпустить отдельную платную версию. Хотя мне кажется для слежки есть намного популярнее сервисы, например соц. сети.
                                      +2
                                      Какой например функционал это нарушит?
                                      Насколько я понял, запрос на ваш сервер идет при загрузке странице, а не при клике на плюсик. Это значит, что вы будете знать о каждой посещенной мною странице. Мне кажется это не идет ни в какое сравнение с соц. сетями.
                                    0
                                    И в порядке рекомендации — думаю, что кнопка отправки выглядит оригинально, но в данном случае не сказал бы, что это плюс. Лучше было бы оставить привычное «Отправить», люди довольно консервативны по части интерфейсов. Но это мое личное мнение.
                                      0
                                      Раньше так и было, решили уйти от конкретного языка к символам
                                      0
                                      Ну а какие проблемы каждому пользователя спамить уникальным для него доменом третьего уровня, где уже будут сплошь положительные отзывы?
                                        +3
                                        Мена интересует юридическая сторона вопроса Анонимный пользователь может написать что угодно, в частности и на каких-то личных сайтах, блогах. Оскорбленная сторона может подать в суд за клевету. Ответчиком, видимо, будет сервис.
                                        У меня в свое время была похожая идея, но именно это остановило. С другой стороны, по юридической части я не специалист — возможно, эти опасения преувеличены.
                                          +3
                                          Есть весьма раскрученный Diigo. При чём даже в последнем народ сайты почти не комментирует, в основном использует только для проставления собственных комментариев. Общие же комментарии обычно остаются на уровне тестов на самых популярных ресурсах.
                                            0
                                            99% продающих страниц впаривают «отличный товар», не поделитесь что купили то? Сейчас у многих такой формат продажи вызывает желание закрыть страницу сходу.
                                              0
                                              Претензия у Вас к товару, а комментарии пишете на сайт продавца. Мысль гарна, циль — погана, как говорится.
                                                +1
                                                Продавец вроде как и отвечать должен или я не прав?
                                                  0
                                                  У него не будет возможности добавить ещё комментарий с ответом на предыдущий?
                                                0
                                                От Яндекса пару лет назад в его тулбаре видел такой функционал.
                                                  +2
                                                  Привет коллегам по идее!
                                                  Год назад сам запустил такую штуку: http://freecom.me/

                                                  У меня не взлетело, но вам искренне желаю удачи!
                                                    0
                                                    Очень интересно. Перед создание расширения искал аналогичное, но ничего дельного и рабочего не нашел.
                                                      0
                                                      там, как я вижу, анонимно комментировать нельзя… может, поэтому и не взлетело?
                                                        +1
                                                        Может.
                                                        Я же больше склоняюсь, что идея сама по себе не нужна публике.
                                                        Мы нынче очень перегружены различными публичными сервисами.
                                                        Поэтому не все новые идеи встречают отклик в избалованных сердцах и перегруженных мозгах людей :)
                                                          0
                                                          скорее, люди не готовы к оверлейным сервисам, в которых присутствует разделение:
                                                          пользователь
                                                          тематический домен
                                                          оверлейные сервисы
                                                          -управление сообществом
                                                          -управление событиями(встречи, выставки и прочие мероприятия)
                                                          --календарь, карты, регистрация
                                                          -управление версиями
                                                          -посты
                                                          -чат
                                                          -картинки
                                                          -видео
                                                          -карты
                                                          -календарь
                                                          -комментарии
                                                          -замечания
                                                          -вопросы
                                                          -подписка
                                                          -голосовалка
                                                          -рейтинги
                                                          -многие другие еще не придуманные или не получившие распространения:
                                                          --совместное редактирование текстов, схем, музыки, рисование…
                                                          --совместное распределенное хранение тематической информации
                                                          представление

                                                          чтобы немного прояснить: хабр и гиктаймс реализуют общий список таких сервисов, и представление, но разные, хоть и близкие тематические домены, хабр и тостер реализуют разные сервисы одного домена, используя разные представления

                                                          p.s. эта идея уже проявляется, например, в поисковиках и социальных сетях
                                                            0
                                                            скорее проблема в расширении, у самого пару стоит, но ставить больше? И так хром любить ОЗУ и стоят разные аналитики на сайтах, так еще и расширение что-то будет делать. Второе, что большая часть только сайты начала понимать, а расширения им ставят знающие люди. Родным сразу ставлю блокировку реклам и по мелочи: скачивать видео, музыку. Еще одна проблема что каждый сам что-то хочет сделать, надо собрать несколько человек, с общей идеей, и вместе пульнуть что-то достойное, лучше иметь малую часть от огромного пирога, чем вообще ничего. По данной теме тоже приходила такая идея в голову, но намного проще и удобнее, но одному очень сложно, хотя большую часть серверных работ могу взять на себя.
                                                              0
                                                              особо работы по этой теме не ведутся, разве что маленькое расширение для теговых закладок(будущая навигация по тематическим доменам и оверлейным сервисам), но там сервер не нужен

                                                              >собрать несколько человек, с общей идеей
                                                              раньше была такая тема: Тёмная материя интернета, даже собрали группу, если хотите кооперироваться, попробуйте там, в частности с автором вышеупомянутого поста.
                                                      0
                                                      А Web of trust?
                                                        0
                                                        Судя по комментариям, часть хаброжителей не поняла, как работает ваш сервис :)
                                                        А можно ли заменить мелкую вырвиглазную HelveticaNeueCyr-Light на что-нибудь щадящее?
                                                          0
                                                          proFeedback (Санкт-Петербург) – расширение для браузера, позволяющее пользователям публично комментировать и оценивать любой сайт, привязывая короткие текстовые сообщения к веб-сайтам в целом или к отдельным страницам.


                                                          Отсюда
                                                            0
                                                            Да новости про профидбек есть, а само расширения я найти не смог, если есть ссылка буду очень признателен.
                                                              0
                                                              Я давно потерял связь с авторами проекта. Возможно, его просто свернули. Я лично трогал в браузере только тестовые версии. Было интересно. Авторы также имели некоторые идеи по монетизации сервиса.
                                                            0
                                                            См. проект coverweb.org/ :-)
                                                              0
                                                              Вроде тут еще не упоминали advisor.webmoney.ru, а напрасно.
                                                              Основной плюс — все серьезнее (с точки зрения траста в том числе) и «автор» сервиса более чем известен (все же известность сервиса тут важна).
                                                              В контексте магазинов, что берут оплату электроденьгами, так вообще тема.
                                                                0
                                                                Здесь commentall.org сейчас написано:
                                                                • Попрощайтесь с модерацией ваших комментариев на сайтах — никто теперь не скроет их от глаз других пользователей;
                                                                • Оставить комментарии возможно даже на тех сайтах, на которых автор не предусмотрел систему комментирования или не захотел этого;
                                                                Но заблокировать работу вашего плагина можно несколькими строчками JS кода на странице сайта. Т.е. если сайтовладелец захочет — ваш плагин на его сайте работать не будет. Тогда зачем вы написали на главной странице вашего сайта такие категоричные заявления?
                                                                  0
                                                                  «Скрипт в студию», было бы круто еще и сразу посмотреть демо-страничку работы вашего скрипта)
                                                                    0
                                                                    Не думал что ваших знаний JS будет недостаточно чтобы написать такой простой скрипт.
                                                                    Вот код скрипта:
                                                                    window.onload = function() {
                                                                        setTimeout(removeCommentall, 500);
                                                                    };
                                                                    function removeCommentall() {
                                                                        element = document.getElementById("js-commentall");
                                                                        if (element) {
                                                                            document.body.removeChild(element);
                                                                        }
                                                                        setTimeout(removeCommentall, 500);
                                                                    }
                                                                    

                                                                    Вот страница на которой блокируется ваш плагин: vps169256.ovh.net
                                                                    Теперь вы ответите на мой первый вопрос?
                                                                    Зачем вы написали вот это у себя на главной:
                                                                    • Попрощайтесь с модерацией ваших комментариев на сайтах — никто теперь не скроет их от глаз других пользователей;
                                                                    • Оставить комментарии возможно даже на тех сайтах, на которых автор не предусмотрел систему комментирования или не захотел этого;
                                                                    ?
                                                                      0
                                                                      Я конечно ожидал чего-нибудь универсального. Но все же спасибо. Исправим. расширение)
                                                                        0
                                                                        Ок, вы не хотите признать факт обмана пользователей, но от этого ничего не меняется — факт остается фактом:
                                                                        на данный момент на вашем сайте размещены лживые заявления о якобы независимости вашего расширения от кода комментируемых сайтов, и я вам это доказал.
                                                                        Меняйте что хотите, но до тех пор пока вы встраиваете свой код в чужую страницу — у владельца страницы ВСЕГДА будет возможность «выпилить» ваш код со страницы, как бы вы не старались его замаскировать.
                                                                          0
                                                                          Чтобы не копипастить… habrahabr.ru/post/261209/#comment_8483669

                                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                Самое читаемое