1. Дискуссии
  2. >
  3. Раздел: Duolingo
  4. >
  5. Не работает DuoTweak

https://www.duolingo.com/profile/VV-2005

Не работает DuoTweak

Перестал работать DuoTweak на главной странице. На вкладке -Форум появляется и появляется словарь. При возврате на главную исчезает и соответственно не меняется язык клавиатуры. Переустановка скрипта не помогает. Кто сталкивался с подобным и есть ли решение.

June 7, 2017

27 комментариев


https://www.duolingo.com/profile/katarina686313

Есть. Это решение может работать практически на всех сайтах. Зайдите на форум. Нaжмите F12. Вы попадете в настройки браузера. Нажмите консоль. Скопируйте этот код - duo.old_web_url_whitelist=["^.+"]; и нажмите Enter. При этом нельзя перезагружать браузер. Это нужно будет делать постоянно.


https://www.duolingo.com/profile/VV-2005

Спасибо! Получилось.


https://www.duolingo.com/profile/saturn110

Как вариант пользуюсь Punto Switcher - кому лень раскладку переключать, но хочет пользоваться новой версией сайта.


https://www.duolingo.com/profile/FieryCat

Вас перевели на новый код, в котором DuoTweak не работает. Форум все еще на старом коде.


https://www.duolingo.com/profile/Svyat_Liza

Здравствуйте! :)

Перестал работать DuoTweak на главной странице. На вкладке -Форум появляется и появляется словарь.

У меня тоже самое.
Плюс: в списке изучаемых языков, когда я смотрю их с главной, отображаются только языки с русского, остальных нет.
screen Когда я захожу в чужой профиль, там теперь показывается сколько ХР до следующего уровня (хотя я что-то не помню, может, это было и до обновлений.
screen А так-у меня на ноуте, когда я зашла в навык французского, там кнопка "Закрепить навык" была вверху, а там месте, где она раньше была, написано "Эта реклама помогает нам сохранять обучение бесплатным", но самой рекламы не было. screen Скорей бы всё снова заработало, как надо! :)


https://www.duolingo.com/profile/lesya__88

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


https://www.duolingo.com/profile/katarina686313

Видимо, вы нажали - Создать аккаунт. Нужно найти кнопку - У меня уже есть аккаунт - или - Войти.


https://www.duolingo.com/profile/Skay91

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

DuoKeySwitcher

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


https://www.duolingo.com/profile/FieryCat

И тут обфускация кода :(


https://www.duolingo.com/profile/Skay91

Взял пример с ДуоТвик. Но если отформатировать код то все вполне видно, просто у функций названия не совсем те. Коды в символы перевести не долго, можно какой нибудь скриптик написать в один проход. Да в интернете есть всякие деобфускаторы

Так как реверсил чужой код, не выкладывать же наработки без разрешения, поэтому тоже обфускацию сделал.


https://www.duolingo.com/profile/FieryCat

А что, обфускация кода снимает проблему использование кода без разрешения автора? ;) Сдается мне, что ваши цели были другие.

Снять такую "защиту" действительно не проблема. Тем более странным кажется такой подход, учитывая что такой метод обфускации (активное использование массивов) замедляет код скрипта.


https://www.duolingo.com/profile/Skay91

И какие мои цели? Проблему не снимает, но оне не хотел афишировать, ну и я не буду его код афишировать, хоть там и осталось полторы строчки. Его вариант расширению языковых раскладок практически не подлежал, а в данном случае, просто добавить еще один массив символов. только думаю 4 языка достаточно.

Какое активное исопльзование массивов? там почти нет их, точнее один, для строковых переменных. Там больше подтормаживает первая прогрузка JQuery, так как на сайте теперь к ней не обратиться, приходится самому грузить. Благо расширение для пользовательских скриптов это делает грамотно.

95% функционала DuoTweak востановлению не подлежит (разве форумные фишки можно еще раскурить). В новой версии сайта выпилили все что только можно было исопльзовать %) то, что для textarea оставили атрибудт lang за счастье, а то про автопереключение в нужную раскладку можно было бы забыть. В упражнениях где вводтся только слово ,хорошо дают только на языке интерфейса а просят на изучаемом.

Вообще не понимаю кодеров которые все это делают. Как будто совершенно разные команды на аутсорсе пишут, мобильное приложение / сайт, не имеют почти пересекающегося функционала, и ресурсов, только дерево одно и уроки. Как так можно делать %)


https://www.duolingo.com/profile/FieryCat

> Какое активное исопльзование массивов?

Каждое обращение к переменной, каждый вызов функции порождает обращение как минимум к одному массиву, а в среднем используется два, причем один из их, как правило, ассоциирован по ключу. Пример из вашего кода, последняя команда: wg5[_0x4443[264]]();. Есть команды с шестью обращениями к двум массивам там, где можно обойтись совсем без них.

> Если вы так сильно хотите, могу убрать обфускацию, мне так то все равно

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

> на js никогда не писал

Аналогично. На нем пишу только для duolingo.


https://www.duolingo.com/profile/Skay91

Тот момент в коде. там и у меня массив). я развернул код который был в дуотвик, и на его основе уже пилил все. А там все функции были вмссиве. Я это менять не стал, тем более встретил подобное применение и в других местах где много связных функций. Сомневаюсь что если оно будет просто функциями - будет быстрее чем с массивом. Ну и не в данном случае, мы не с такими данными работаем где каждая милесекунда на счету.

А писать простыню кода - нет увольте, если в условии много что выполняется - инкапсулируй.

Сейчас уберу обфускацию .


https://www.duolingo.com/profile/Skay91

убрал) будут конструктивные предложения - пулреквесты принимаются.

Можно посмотреть на ваши скрипты? интересно что еще людям тут на дуо может требоваться. Особенно с учетом такого урезания функционала.


https://www.duolingo.com/profile/FieryCat

Можно посмотреть на ваши скрипты?

Да, можно: https://github.com/liuch/duolingo-scripts. Часть из них уже не актуальна в связи с последними нововведениями. Точнее, пока точно работают только два: DuoDirectLinks и DuoMoreLingots. У меня все руки не доходят до обновления тех, которые актуальны и удаления тех, что дополняют уже отключенный функционал.

убрал) будут конструктивные предложения - пулреквесты принимаются.

Ага, вижу. Серьезные предложения от меня ждать не стоит, т.к. для этого скрипт надо использовать, а я предпочитаю классический метод переключения раскладки :) Но что сразу бросилось в глаза, так это использование переменной при формировании html строки в функции showIndicaorLanguage. Если при обновлении кода в подсказке появится один из спец символов, поедет вся страница. Возможно это наследие DuoTweak, там такого кода было полно. Я бы это сделал через установку значения атрибута. Так безопасней.


https://www.duolingo.com/profile/Skay91

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


https://www.duolingo.com/profile/Skay91

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

Я тоже предпочтал классический вариант. Но на дуолинго часто переключать туда обратно приходится. А во время теста на время так парой еще отвлекся а потом набрана каша))

П.С.: квадратные скобки не всегда обращение к массиву. это один из вариантов нотации. И тот и другой вариант абсолютно равнозначны.

ALT


https://www.duolingo.com/profile/FieryCat

Но в тултипе неоткуда взяться спецсимволам, так как мы сами задаем текст сообщения.

Это пока неоткуда. А вдруг в следующей версии тултип будет формироваться динамически? В одном известном нам скрипте данные вставлялись прямо из ответа сервера и массива локализации без каких либо проверок. Может сначала те данные тоже были статичными :)


https://www.duolingo.com/profile/Skay91

P.P.S.: глянул скрипты, кажется я на них натыкался недавно :) очень много обработок получается вешается на document, и при достаточном количестве скриптов, это будет вызывать тормоза страницы. (я так же написал хех). Лучше привязываться к конкретным элементам, пытаться.

P.P.P.S: как же неудобно без ленты. :(


https://www.duolingo.com/profile/FieryCat

Привязка к конкретным элементам тоже не идеальна. Бывает такое, что события об изменении элементов не прилетают. Возможно что разработчики просто смешивают jquery вызовы с прямой правкой DOM. В погружении это было точно. Оттого там память дико текла. В большинстве случаев ajax запросов не так много. Бывает, что на порядок меньше, чем правок нужных мне элементов. Вспоминаем про популярные посты. Да и работа с DOM через JS не такая и быстрая. Так что не факт, не факт... Но и не отрицаю, что вы правы. В своем коде стараюсь обходить задержки, где это возможно.

p.p.p.s. Угу :(


https://www.duolingo.com/profile/Skay91

что и требовалось доказать. есть обфускация кода или нет - не имеет значения. Никто все равно не правит скрипт. Никто даже не написал что он не работает ни в коменте ни на гите. Видно как оно нужно.

Ппц упростили сайт, они бы еще на чистый хтмл перешли %)


https://www.duolingo.com/profile/FieryCat

Я не знаю что вы доказывали, но мне даже на email писали (нашли же!). Вот, свежий пример с обфускацией (неделя назад): https://www.duolingo.com/comment/25279632 Человеку сильно приперло, он нашел куда написать, даже если автор не доступен.

Лично я вашим скриптом не пользуюсь, зачем бы мне его править? Правда я и Дуотвиком (из ссылки выше) не пользуюсь, но человек попросил, а у меня было немного свободного времени.

Лично мне обфускация кода мешает хоть как-то начать доверять скрипту. А править чужие скрипты я предпочитаю через авторов, если они доступны :)


https://www.duolingo.com/profile/Skay91

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

П.с.: ппц, как упрощая настолько сайт, можно в итоге иметь детские болезни. Нарпимер кэш - я свой прогресс дропнул, а на форуме везде отметка 10 лвл))


https://www.duolingo.com/profile/FieryCat

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

На счет обновленного форума - это не единственная его болезнь. Я по этому поводу даже отдельный пост написал.

Изучайте язык всего по 5 минут день. Абсолютно бесплатно.