Мой OpenSource
3 поста
3 поста
Во время работы над переводом документации DRF, сделал простой скрипт. Со временем он разросся. Сейчас он в несколько потоков через Selenium и web версии переводчиков переводит документы. Редактура после этого нужна, но это куда легче, чем переводить все с нуля.
Поддерживает следующие сервисы (по моему рейтингу):
Deepl (мой фаворит!)
Microsoft Translate (неожиданно)
Google Translate
Yandex Translate (по сути проксированный в гугл запрос, но с очень злым антиспамом)
В случае антибота - тормозит работу и в открытом окне можно пройти капчу и продолжить.
В репозитории есть описание аргументов вызова. Так же поддерживает файлы конфигурации
Может писать в новый файл или в исходный, может писать только переведенное или вообще все, по-умолчанию игнорирует уже переведенные файлы (можно отключить)
Продолжает работу с того места, на котором остановился. В конце чистит за собой временные файлы. Настоятельно рекомендую удалять временные файлы, если решили сменить сервис перевода - может сильно бросаться в глаза разница формулировок.
Постарался сделать максимально простое API для поддержки новых сервисов - если чего-то не хватает, открывайте PR или Issue, посмотрим, интегрируем. Ну и вообще, если есть идеи, как можно улучшить - пишите сюда или в Issue.
Так же настроен автоматический релиз в PyPi - можете взять Workflow
С помощью этого приложения переведена документация DRF
Бывает, что меня не устраивает функционал и/или оформление сайтов. Для борьбы с этим я начал писать свои стили и скрипты. Расширения использую Stylus и Tempermonkey.
Поскольку я иногда забываю их синхронизировать, решил создать с ними репозиторий: https://github.com/ilyachch/userscripts
Из интересных скриптов:
Better Habr
окрашивает заголовок статьи в зеленый или красный в зависимости от рейтинга
давет возможность рекурсивно отсортировать комментарии по рейтингу (при нажатии на заголовок "Комментарии"
Media Speed
позволяет указать скорость воспроизведения медиа. Настройки хранит в localstorage и перехватывает событие запуска воспроизведения. Тоесть каждый сайт "запоминает" скорость воспроизведения
Better Rezka
убирает паузу между сериями при просмотре сериалов
показывает "новое" целиком, без карусели, убирая при этом дубликаты
убирает всплывающее окно при отметке "просмотрено"
для авторизованных пользователей парсит список просмотренного и отмечает цветом "в процессе" и "просмотрено"
Интересные стили:
4pda - по возможности убирает рекламные блоки. не все, но что уж есть
github - растягивает окно actions на всю высоту (по умолчанию, оно прокручиваемое и влезает туда 3 или 4)
rezka - убирает рекламные блоки, растягивает плеер, делает интерфейс адаптивным и во всю ширину экрана
seasonvar - делает адаптивным, растягивает плеер, делает полностью темным
youtube - оставляет только ссылки "главная", "подписки", библиотеку. убирает из подписок стимы, шорты, растягивает плейлист
Есть еще много вещей, которые можно доделать и сделать.
Так же открыт к предложениям - открывайте issue, pull request-ы
Собственно, всем желающим: https://github.com/ilyachch/django-rest-framework-rusdoc
Еще в 2017 году я задумал сделать перевод документации по DRF. И начинал с перевода вручную. После перевода Quickstart понял, что так дело не пойдет. Начал переводить с помощью переводчиков с редактурой. Стало чуть быстрее.
Нормально так подзадобавшись, написал простенький скрипт, который принимал Markdown файл и переводил его, добавляя после каждого блока текста переведенный блок. В некоторых случаях, получалось относительно неплохо.
Сейчас проект поддерживается в максимально актуальном состоянии:
каждую неделю по крону выкачивается документация оригинала и сравниваются хэши файлов у меня и в источнике (можно посмотреть код workflow гитхаб экшенов)
в случае наличия изменений, автоматом создается ветка и pull-request, которые я обрабатываю за пару дней (по мере наличия времени)
все изменения проходят мою ручную редактуру
Если кому-то будет полезно, буду рад.
При обновлении ленты, посты не скрываются. Так же не всегда догружаюся более старые. Для просмотра старых или скрытия просмотренных нужно выходить из приложения и снова заходить
У меня включена функция скрывать просмотренное. При этом, периодически появляются старые посты в "моей ленте". На новые сообщества не подписывался.
Выглядит примерно так:
1) просматривается лента
2) обновляется страница - "Все просмотрено"
3) если появляется новый пост в подписках, под ним есть один или несколько явно прочитанных постов
Браузеры: chrome, firefox
ОС: Windows 10, Linux Mint 19
Добрый день. По неизвестной причине при промотке ленты с помощью кнопок "A" и "D" в Firefox 61.0.1 и Chrome 68.0.3440.75 в OS Linux Mint 19 посты не помечаются, как просмотренные. Всякого рода АдБлоки стоят, но Пикабу в исключениях. В консоль отладки ошибки не падают.
Вероятно из-за этого же при нажатии "R" может не запуститься проигрывание видео или GIF-ки - оказывается, что запустилась какая-то предыдущая.
При этом, прокручивая пробелом, посты прочитанными отмечаются.
Спустя полгода ношения на кармане ножа kershaw 1990, при очередной попытке открыть его характерным для ножей с ассистом способов, нож не открылся. дотерпев до дома и разобрав, я с ужасом увидел лопнувшую пружину
в первую очередь кинулся искать ее на ebay и прочих алиэкспрессах, но ничего подобного я там не нашел. уже близкий к отчаянию, я нашел на сайте производителя контакты поддержки. ну и написал им, как было дело.
в ближайший понедельник со мной связались и сообщили, что они в некотором шоке от произошедшего и предложили 2 варианта - отправить им мой нож, чтобы они его починили по гарантии или же, чтобы они отправили мне пружинку,попутно сообщив, какие мне нужны будут отвертки, видимо не догадавшись, что они у меня - как-то же я разобрал его, чтобы достать сломанную пружину (все - бесплатно).
выбран был второй вариант и уточнив все мои контакты, они сообщили что отправили посылку с трек номером. через месяц я получил аж 2 запасные пружины! и, как выразился человек на том конце переписки, эти пружины они сняли с уже собранных ножей=)
вот так я обрел веру в клиентоориентированную поддержку=) клинок снова вылетает, как черт из табакерки