1. JavaScript / Говнокод #13321

    +139

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    // ==UserScript==
    // @name		GK parent comment
    // @namespace	GK
    // @description	Adds links to parent commentary to GK comments, and sets parent commentary text as link tooltip.
    // @include	http://govnokod.ru/*
    // @include	http://www.govnokod.ru/*
    // @version	1.0.0
    // @updateURL	http://userscripts.org/scripts/source/172756.meta.js
    // @downloadURL http://userscripts.org/scripts/source/172756.user.js
    // ==/UserScript==
    
    (function(){
    //hack for Chrome, as it doesn't support unsafeWindow.
    if (typeof unsafeWindow == 'undefined')
    	{
    	unsafeWindow = (function() 
    		{
    		var el = document.createElement('p');
    		el.setAttribute('onclick', 'return window;');
    		return el.onclick();
    		}())
    	};
    $ = unsafeWindow.jQuery;
    
    //dirty, DIRTY hack to wait for certain element to appear. -_- 
    //But I have no idea how to do it right.
    function waitForSelector(selector, context, mustexist, callback) {
    	var l = $(selector, context).length;
    	if ((l>0) != mustexist)
    		{
    		setTimeout(function(){waitForSelector(selector, context, mustexist, callback)}, 50);
    		return false;
    		};
    	callback();
    	}
    
    //short function for adding custom CSS rules. Why use Greasemonkey specific GM_setStyle() just for that?
    function addCSS(rule) {
    	var styleElement = document.createElement("style");
    	styleElement.type = "text/css";
    	if (typeof styleElement.styleSheet !== 'undefined')
    		styleElement.styleSheet.cssText = rule;
    	else
    		styleElement.appendChild(document.createTextNode(rule));
    	document.getElementsByTagName("head")[0].appendChild(styleElement);
    	}
    
    addCSS([
    	'.comment-parent-link {margin-left:10px;font-size:10pt}',
    	].join('/n'));
    
    var PARENT = '<a class="comment-link comment-parent-link" href="">↑</a>';
    
    var oldLoadComments = unsafeWindow.comments['load'];
    
    function newLoadComments(aElemTrigger) {
    	var $parent = $(aElemTrigger).closest('.entry-comments');
    	oldLoadComments.call(this,aElemTrigger);
    	waitForSelector('.hcomment', $parent, true, function(){
    		setParentLinks($parent);
    		});
    	}
    
    unsafeWindow.comments['load'] = newLoadComments;
    	
    function setParentLinks($context) {
    	$context.find('.hcomment').each(function(i,e){
    		var $this = $(this);
    		var $parent = $this.parents('.hcomment:eq(0)');
    		if ($parent.length) {
    			var $parentlink = $(PARENT);
    			$parentlink.attr('href', $parent.find('a.comment-link:eq(0)').attr('href'));
    			$parentlink.attr('title', $parent.find('.comment-text:eq(0)').text());
    			$this.find('a.comment-link:eq(0)').after($parentlink);
    			}
    		});
    	}
    
    setParentLinks($('body'));
    })();

    http://userscripts.org/scripts/show/172756
    По просьбам трудящихся, скрипт для поиска родительского комментария. Добавляет ссылку на родителя, и ставит его текст как тултип.
    Учитывая подключение либы с самого сайта и метод поиска динамически подгруженных комментариев, вполне себе говнокод. А потому: тов. Страйкер, вынесите уже отдельно функцию comments.loadSuccessful()! А то адский гемморой любую постобработку комментариев делать.

    Запостил: Vindicar, 07 Июля 2013

    Комментарии (105) RSS

    • В setTimeout можно после времени передавать аргументы. Тогда внешняя функция не нужна.
      Ответить
      • Хм, не знал, спасибо!
        Ответить
      • к сожалению везде, кроме осла. В осле надо дополнительной функцией врапать.
        Ответить
        • Вот жеж блин. Когда они продвигали свой ВБС еще было хоть как-то понятно нафига они это делают. Но на него ж забили сто лет в обед... Такое впечатление, что они прям на зло водителю покупают билет и ходят пешком :|
          Ответить
        • Osyol 11 спасет ситуацию?

          http://www.nczonline.net/blog/2013/07/02/internet-explorer-11-dont-call-me-ie/
          > A future without IE-specific code branches is near
          Ответить
    • Анальная клоуанада какая-то.
      Ответить
    • Бля, что с форматированием?
      Ответить
      • Еще хорошо бы подсвечивать комент из #.
        Ответить
        • В смысле подсвечивать родительский комментарий по наведению на добавленную ссылку?
          Честно говоря, не вижу особого смысла. Ссылка на родительский комментарий полезна в первую очередь тогда, когда он где-то далеко за краем и все равно не виден.
          Ответить
          • В смысле при переходе по адресу #comment186577 чтобы соответствующий комент выделялся.
            Ответить
            • Добавлено.
              Печально что используется древняя версия jQuery, даже .on() нету.
              Ответить
              • В старых .live() работало ничуть не хуже нового .on(), только там порядок аргументов был другим.
                Ответить
    • > hack for Chrome, as it doesn't support unsafeWindow.
      Быстрый и безопасный браузер несколько месяцев назад достиг 27 версии, став ещё быстрее и безопаснее: https://code.google.com/p/chromium/issues/detail?id=222652.
      Насколько я понимаю, баг исправлен, скрипты поломаны, а пользователям предлагается на выбор:
      1. соснуть
      2. пилить своё расширение
      3. использовать Tampermonkey, где unsafeWindow приготовлено заранее
      Ответить
      • Вот жеж задница. Спасибо что предупредил. Как обычно, корпорация бобра лучше знает что пользователю надо. =\
        Ответить
        • Да все они хороши ;) Веб и совместимость - вещи несовместимые ;)
          Ответить
          • Вам надоело думать о глючной винде и кривых линуксах?
            Выход есть - кроссплатформенные веб-приложения!
            Ответить
      • >3
        А в чем проблема? TamperMonkey и Skriptish имею совместимые GM_ функции.
        Ответить
        • Под хромом можно запускать некоторые юзерскрипты без использования расширений, тот хак был именно для такого случая.
          Ответить
    • показать все, что скрытоADMIN ETOGO SAITA PEDIK
      Ответить
      • А тебя что, жаба душит? Вы все скот, тупое быдло, которое с детства учили, что вставлять свою пипиську в девочку - хорошо, а в мальчика - плохо, а своего мнения о сути дел либо совсем нет, либо оно сильно искажено и противоречиво.
        Ответить
    • Hello. Please delete this message.
      Ответить
    • Изменил скрипт: при наведении на стрелочку показывается не текст комментария, а сам комментарий.
      http://gvforum.ru/viewtopic.php?pid=2070#p2070
      Vindicar, как Вы к этому относитесь? Добавите как новую версию? Или стоит залить как отдельный скрипт, или вообще удалить?
      Ответить
      • Отписался в треде.
        Ответить
      • Кстати, а данный скрипт уже умеет убирать рейтинг, скрывать комменты мудаков и раскрывать комменты всех остальных? Если нет - можешь добавить в качестве превентивной меры ;) Походу в ближайшие дни пригодится...
        Ответить
        • Этот не умеет. Умеет вот этот:
          http://userscripts.org/scripts/show/393166
          Ответить
        • Это ты про брутуса?

          Да, сделайте разворачивание всех коментов, желательно конфигурируемое.
          Ответить
        • cleaned
          Ответить
          • Если все заранее приготовят скрипты, или хотя бы будут знать, где их взять - толк будет ;)
            Ответить
            • cleaned
              Ответить
              • Да есть же ;)

                Если все смогут общаться не обращая внимания на потоки говна и минусов от всяких неадекватных личностей - мне от этого только профит.
                Ответить
                • Боты - это продолжение срача на сайте другими методами.
                  Ответить
            • Так там на форуме целая тема про это - http://gvforum.ru/viewtopic.php?id=1173.
              Я ещё недавно добавил упоминания нескольких скриптов, которые мой скрипт нашёл на страницах ГК.

              СКРИПТЫ ДЛЯ ГК: http://gvforum.ru/viewtopic.php?id=1173
              Ответить
              • cleaned
                Ответить
                • > Вон, главному минусующему, который развязал войну и который сейчас смущенно притих, вообще побоку
                  Это тому, у которого 50 ботов? Ну и слава богу, что он успокоился. Я рад за него.
                  Ответить
                • > Эх, не помогут вам скрипты!
                  Помогут. Уже помогают. Мой скрипт уже пару месяцев помогает мне читать изменения тредов с сотнями комментов.

                  И сколько можно уже угрожать? Это замкнутый круг. Минусовать не перестанут, пока не прекратится война, которая не прекратится, пока не перестанут минусовать.
                  Это та же школа, пукнешь в первом классе, будут троллить и припомнят в одиннадцатом.
                  Почему нельзя просто быть умнее остальных, возвыситься над толпой, чтобы толпа уважала? Личность умнее толпы, Стертор умнее трёх минусующих ботов.
                  Ответить
                  • cleaned
                    Ответить
                    • Вот когда то давно я и Тарас был таким долбоёбом, что ещё надо поискать. С тех пор я не изменился. Зато сейчас Тараса уважают. И только я захожу в тред - меня сразу плюсуют.

                      Так вот вывод из этой истории:
                      Становись умнее и переставай отвечать на чужие нападки своим долбоёбством. Или игнорируй или отвечай умнО. Заслужишь уважение и на тебя почти не будут больше нападать и начнут чаще плюсовать.
                      Ответить
                      • Гумно дело говорит, хоть про Тараса я не понял нихера.

                        Но то что раньше (когда еще пушкофф сюда захаживал) его постоянно минусовали, когда он в привычной манере обсирал кресты - факт.
                        Правда, может иногда и за дело, ибо крестов он тогда не знал, не помню.
                        Ответить
                      • Это же сайт для троллинга

                        Чем больше пригорает от минусов, тем сильнее будут минусовать. Очевидно же.
                        Ответить
                        • Это же сайт для троллинга

                          Чем больше пригорает от коней, тем сильнее будут резвиться кони. Очевидно же.
                          Ответить
                          • Кто же спорит. У нас давно уже от коней не пригорает. Все быстро написали себе скриптов, скрывающих коней.
                            Ответить
                            • Никто не мешает сделать новых коней, превратящих сайт в неюзабельное говно.
                              Ответить
                              • Никто не мешает сделать белый список и фильтровать всех новых коней.
                                Ответить
                                • Никто не мешает запилить свой гк. Даже сырцы есть.
                                  Ответить
                            • А я их не скрываю. Я люблю природу.
                              Ответить
                              • cleaned
                                Ответить
                                • Какая разница, кто был Конардо?
                                  Ответить
                                  • cleaned
                                    Ответить
                                    • >он менял ники, как перчатки.
                                      Конярдо, конярдино. Да, менял.
                                      Ответить
                                    • > Я не скрывал своего имени
                                      А зачем переименовался тогда?
                                      Ответить
                                    • Вот мне таки интересно, что это за священный крестовый поход ты тут устроил?
                                      Для начала, кто ты? Правильно. Ты никто. И я никто. И вообще все на этом сайте никто, голоса в Сети, буквы на экране. Воевать с буквами бессмысленно, их надо или печатать, или стирать, или тупо не читать.
                                      А косить под блюстителя морали и сетевого паладина - только народ смешить.
                                      Ответить
                                      • Но батхерт-то - настоящий!

                                        Люди, которые ставят автоминусаторы, такие же, только в меньшем масштабе. Мы это с бормандом уже обсуждали.
                                        Ответить
                                        • >Но батхерт-то - настоящий!
                                          Он тебя товарищем и другом называет, а ты такие вещи пишешь.
                                          Мне даже влом его сейчас автоминусовать, конечно пафос и упоротость зашкаливает. Но как-то не особо и смешно сирых и убогих обижать, право. Всё на что он был способен - уже показал.
                                          Ответить
                                        • >>Но батхерт-то - настоящий!
                                          >батхерт
                                          Как же это дурацкое слово заставляет деградировать словесный запас. И что хуже, мышление деградирует следом - люди совсем перестают отличать обычное неодобрение от "припекло".
                                          "Баттхёрт" - это когда человек прямо-таки готов в лепешку расшибиться чтобы поквитаться. Я лично провожу границу между обычным неодобрением и начальной стадией баттхёрта по использованию твинков. Если человек регает дополнительные учетки только чтобы отвести душу - да, можно сказать что его "припекло". А одиночный минус говорит только о том, что ему не нравится что ты пишешь.
                                          Ответить
                          • Если не подавать виду - то нет. Минусы - это даже на "сухпаёк" не тянет. Вот разъярённые комментарии - другое дело.
                            Ответить
                            • cleaned
                              Ответить
                              • > Борманд со товарищи, простой участник, как и я, взял права для модерирования чужих комментов
                                Ставить один минус это уже модерирование? Странные у тебя понятия.

                                А мудерировать тут пытается только некий мудератор, который ставит по 40-50 плюсов и минусов своими ботами.
                                Ответить
                                • cleaned
                                  Ответить
                                  • > Ты минусуешь только мои топики
                                    О_о. Ты серьезно думаешь, что я минусую только твои топики? :)
                                    Ответить
                                    • cleaned
                                      Ответить
                                      • > Я уже очень разочаровался в тебе и во многих участниках.
                                        А если продолжишь играть в спасителя говнокода от деспотичных пидорасов - то разочаруешься и во всех остальных... По-любому.

                                        А самый стёб в том, что ничего ты этим не добьешься.
                                        Ответить
                                        • cleaned
                                          Ответить
                                          • ты, очевидно, не знаешь известную пословицу про плевок и общество
                                            не рискуешь утонуть?

                                            реально фазы луны, можно прям огурцы сажать по расписанию обострения
                                            Ответить
                                            • cleaned
                                              Ответить
                                              • Предлагаю написать коллективное письмо страйкеру, чтобы он выпилил нахер индикацию рейтинга комментов (но не их скрытие по -5). Может быть тогда пригорать по пустякам перестанет у некоторых личностей.
                                                Ответить
                                          • > Ты плохо меня знаешь ;)
                                            За плохие оценки к фоткам в одноклассниках какие-то чуваки вообще друг друга убивали ;) Откуда берется такое отношение к рейтингам/кармам/лайкам и т.п.?
                                            Ответить
                                • >Ставить один минус это уже модерирование? Странные у тебя понятия.
                                  Минусовать толпой автоматом , анонимно (исподтишка) и не говоря за что - вот это то, с чем стоит бороться.

                                  Вы так говорите, как будто хуячить ботом минуса очень тяжело. Когда бот написан, оттестирован и аккаунты зарегены - нет разницы между одним коментом и всем сайтом.
                                  Ответить
                              • >>Но я сначала пытался действовать по-хорошему, уговорить товарищей, если ты это называешь "гневными комментариями".

                                Ты вообще прочитал мой комментарий выше?
                                Не надо "пытаться". Просто не надо.
                                Ты имеешь возможность не читать тех, чьи комментарии тебе не нравятся, и выражать свое мнение оценкой. Они имеют ту же самую возможность по отношению к тебе. Еще раз, коротко: проблема в том, ЧТО ты делаешь, а не в том КАК ты это делаешь. С чего ты вообще взял что ты знаешь как лучше?
                                Всякая "высшая справедливость", которую ты пытаешься тут навести, просто-напросто
                                НЕ ВОСТРЕБОВАНА
                                Ответить
                                • cleaned
                                  Ответить
                                  • А я и не знаю как лучше. Я просто описываю существующую систему, которая меня лично вполне устраивает.
                                    Ответить
                                    • cleaned
                                      Ответить
                                    • > Я просто описываю существующую систему, которая меня лично вполне устраивает.

                                      https://2ch.hk/old/src/1397144336555.png

                                      Если каждый день погружаться в говно, то это тебя начнет устраивать через какое-то время. Но это не значит, что привыкать - это правильно.
                                      Ответить
                                      • только мудаки дают ссылки на двач Про исчезновение тредов слышал?
                                        Ответить
                      • Лишп, пойми простую вещь. Есть здесь более менее устоявшаяся группа людей, которая пытается прогнуть всех остальных под себя. И или ты с ними уживешься, или нет, и они тебя будут по каждому поводу бортовать. Если эта группа для тебя чужеродна - комфортного сосуществования не будет.

                        Я кресты на хуе видал. Похоже, что я всегда буду во второй группе.
                        Ответить
                        • >Похоже, что я всегда буду во второй группе.
                          Стретор, принимай пополнение! Такого тебе кадра нарисовали! Образованный, питонист!
                          Ответить
    • Решил таки установить фильтрующий скрипт.
      > Теперь можно автоматически раскрывать спойлеры заминусованных комментариев для заданных групп.
      А есть группа "остальные" или "все"? Хотелось бы оставлять как есть комментарии для группы "школоло" и автоматически раскрывать для всех остальных пользователей.

      P.S. К сожалению в Chrome пока не работает из-за аргументов по умолчанию.
      Search "function.*?\([^\)]+?=" (6 hits in 1 file)
      	Line 166: 	spoiler: function($comment, text='показать всё, что скрыто', hint=false) {
      	Line 191: 	voteUp: function($comment, delay=10.0) {
      	Line 201: 	voteDown: function($comment, delay=10.0) {
      	Line 239: 	spoiler: function($post, text='показать всё, что скрыто', hint=false) {
      	Line 254: 	voteUp: function($post, delay=10.0) {
      	Line 260: 	voteDown: function($post, delay=10.0) {

      Хотя, пользователь это легко исправить сам, прогнав скрипт через функцию
      function replace(code){
        var old;
        while(1)
          if(old === (code = (old = code).replace(
            /(function[^\(]*?\()([\s\S]*?)([\w\d$_]+?)=((?:[^"']|'(?:\\'|[^'])*'|"(?:\\"|[^"])*")*?)([,\)\s][\s\S]*?\{.*?)([\r\n]+\s*)/g,
              '$1$2$3$5$6if($3 === undefined) $3 = $4;$6')))
                return code;
      }
      Ответить
      • > пользователь это легко исправить сам, прогнав скрипт через функцию
        Не барское это дело, скрипты править...
        Ответить
        • Это чтобы не лишать пользователей Firefox преимуществ и перфоманса от аргументов по умолчанию :)
          Ответить

    Добавить комментарий