#виброкодинг #YouTube #Yandex #userscript #Tampermonkey

Автоматизируем 300.ya.ru

Ну что ж, пришлось попинать #ChatGPT изрядно, зато теперь имеем рабочую версию юзерскрипта. Положу сюда:

https://github.com/Johan-foreva/300.ya.ru-Auto-Paste/blob/main/300-ya-ru-Auto-Paste.js

Скрипт делает простую вещь: если ссылка содержит фрагмент («якорь», «хеш»), т.е. https://300.ya.ru/#SOME_URL — скрипт возьмет его, вставит в окошко ввода, как только оно подгрузится, и сам нажмет кнопку. Почему через жопу? Потому что безопасность браузера не позволяет читать буфер обмена без лишних телодвижений, а так — работает вполне прозрачно.

Как пользоваться:

  • Если у вас уже открыт ролик, можете прямо в адресной строке написать перед ним 300.ya.ru/#

  • Или сделать #букмарклет:

  • javascript:(()=>{window.open('https://300.ya.ru/#'+encodeURIComponent(location.href),'_blank')})();

    Тогда в новом окне откроется.

  • Или другой, который возьмет текст, выделенный на странице:
  • javascript:(()=>const t=window.getSelection().toString().trim();const d=t)();

  • Ну и самый длинный вариант — тыкнуть ПКМ по ссылке, «Копировать ссылку», потом два раза на букмарклет (потому что появится кнопка-подтверждение, для вашей, блин, безопасности).
  • javascript:(async()=>{try{const text=await navigator.clipboard.readText();if(!text||!text.trim()){alert('%D0%91%D1%83%D1%84%D0%B5%D1%80 %D0%BF%D1%83%D1%81%D1%82');return;}const w=window.open('about:blank','_blank');if(!w){alert('Popup %D0%B7%D0%B0%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD');return;}w.location.href='https://300.ya.ru/#'+encodeURIComponent(text);}catch(e){alert('%D0%9D%D0%B5%D1%82%20%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0%20%D0%BA%20%D0%B1%D1%83%D1%84%D0%B5%D1%80%D1%83');}})();
    300.ya.ru-Auto-Paste/300-ya-ru-Auto-Paste.js at main · Johan-foreva/300.ya.ru-Auto-Paste

    Auto-pastes text from location.hash into textarea on 300.ya.ru with anti-reset logic (handles Svelte re-renders) and submits when the button becomes enabled - Johan-foreva/300.ya.ru-Auto-Paste

    GitHub

    #Firefox #Yandex #виброкодинг #ChatGPT #Tampermonkey

    Навиброкодил связочку из #bookmarklet'а и #userscript'а, при помощи которых можно отправлять #YouTube-ролики прямо в https://300.ya.ru

    Конечно, не совсем прямо, в сумме получается 4 клика (2, чтобы скопировать, 2 чтобы вставить). Но зато только мышкой.

    1) Букмарклет

    javascript:(async()=>{try{const text=await navigator.clipboard.readText();if(!text||!text.trim()){alert('Буфер пуст');return;}const w=window.open('about:blank','_blank');if(!w){alert('Popup заблокирован');return;}w.location.href='https://300.ya.ru/#'+encodeURIComponent(text);}catch(e){alert('Нет доступа к буферу');}})();

    2) Юзерскрипт

    // ==UserScript==
    // @name 300.ya.ru Auto Paste via Hash (Stable)
    // @namespace http://tampermonkey.net/
    // @version 3.1
    // @match https://300.ya.ru/*
    // @run-at document-start
    // ==/UserScript==

    (function() {
    'use strict';

    const data = decodeURIComponent(location.hash.slice(1) || '');
    if (!data) return;

    let inserted = false;
    let submitted = false;

    function fireEvents(el) {
    el.dispatchEvent(new Event('input', { bubbles: true }));
    el.dispatchEvent(new Event('change', { bubbles: true }));
    }

    function insertOnce(el) {
    if (inserted) return;
    inserted = true;

    el.focus();

    const ok = document.execCommand('insertText', false, data);

    if (!ok) {
    const setter = Object.getOwnPropertyDescriptor(
    HTMLTextAreaElement.prototype,
    'value'
    )?.set;

    if (setter) setter.call(el, data);
    else el.value = data;
    }

    fireEvents(el);
    }

    function tryRun() {
    const textarea = document.querySelector('textarea');
    if (!textarea || textarea.offsetParent === null) return;

    insertOnce(textarea);

    const btn = document.querySelector('button[type="submit"], .submit');

    if (!submitted && btn && !btn.disabled) {
    submitted = true;
    observer.disconnect();
    clearInterval(interval);
    btn.click();
    }
    }

    const observer = new MutationObserver(tryRun);

    observer.observe(document.documentElement, {
    childList: true,
    subtree: true
    });

    const interval = setInterval(tryRun, 300);

    })();

    Копируем ссылку на YouTube-ролик, жмякаем букмарклет (2 клика, т.к. появится кнопка «Вставить» в целях безопасности). Откроется страничка Яши, и дальше уже всё само.

    Нейросеть YandexGPT кратко перескажет видео на YouTube, статьи и тексты

    Краткий пересказ от нейросети YandexGPT

    userjs/mastodon/mastodon-threaded-replies.user.js at main · afontenot/userjs

    collection of userjs files for various sites . Contribute to afontenot/userjs development by creating an account on GitHub.

    GitHub

    #Mastodon #MastodonTools #userscript #Tampermonkey #виброкодинг

    Решил попробовать скормить скрипт скрытия прочитанных постов #Gemini для окончательного допиливания. Теперь работает. Вот прямо так, как мне нужно было 😀 👍 Теперь не стыдно и показать.

    Что конкретно делает: когда вы скроллите ленту (неважно, вверх или вниз), фиксирует тот факт, что пост был полностью, от начала до конца, виден на экране, и после того, как он проскроллится за его пределы — скрывает его. Запоминает идентификаторы 1000 последних постов в local storage.

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

    Типичный случай использования — вот вы листаете ленту, остановились где-то, сверху новые посты накопились, вы страничку перезагрузили и получается, что у вас будут непрочитанные, потом прочитанные, потом опять недочитанные. А так — нет 😀 Или, допустим, у вас лента поделена на списки, и нужно решить проблему дублирования.

    Known Issues:

  • Наравне с постами съедает и уведомления (и вдобавок список списков 🙃 ). Я пока не решил, плохо это или хорошо, усложнять не хочу, а включить/выключить не проблема.
  • Если хотите добраться до очень старых постов, то кнопку Загрузить еще внизу придется нажимать много раз. Это не глюк, это, в принципе, логично.
  • Почему-то с первого раза (т.е. при открытии сайта из адресной строки) скрипт не цепляется, только после перезагрузки страницы по F5 🤔 Причину ищу, а пока так.
  • Забирайте, пробуйте, ставьте лайки, спрашивайте вопросы, предлагайте предложения!

    https://github.com/Johan-foreva/Mastodon-Hide-Read-Posts/blob/main/Hide-Read-Posts.js

    #MastodonTools #виброкодинг #userscript #вопрос

    Ну не то чтобы вопрос, размышления для себя:

    • вот есть ситуация, когда ты просматриваешь ленту снизу вверх, жмешь «Показать новые» — и они нормально подгружаются «за пределами экрана» и лента не смещается, можно мотать дальше. Но иногда, то ли из-за подгрузки картинок, то ли еще из-за чего — съезжает.

    #РешилДляСебя скриптом, который запоминает верхний пост на экране и принудительно скроллит обратно к нему.

    Но. Если активировать скрытие прочитанных постов, будет бяка: текущий пост на экране ведь считается «прочитанным», когда лента уедет — он исчезнет, и прокручивать обратно будет просто некуда.

    Можно, конечно, руками — сначала «Показать всё», потом «Показать новые», потом обратно «Скрыть прочитанные». Неаккуратненько © 🙁

    #ChatGPT предлагает пару вариантов взаимодействия между скриптами; либо что-то в изначальной логике работы надо поменять, но ее (логики итак мало 🙁).

    Например, скрывать не радикальным display:none, а как-то так, чтобы прокрутка к объекту всё же сработала...

    #Mastodon #MastodonTools #userscript #виброкодинг

    Так-так... А вот не мешало бы прикрутить автосохранение набранного, но не отправленного поста при перезагрузке страницы? Есть, конечно, копипаст, но так теряется цепочка комментариев. Правда, кажется, придется долго ковыряться в том, как восстановить родительский пост и адресовать ему камент...

    Боромир Евген бы смог...

    TIL about Pluraldawn
    https://exa.y2k.diy/garden/pluraldawn/

    It's a #Userscript ‡ that will look for a leading / trailing indicator and swap the displayed avatar and username when looking at an account that's posted to by multiple people in a plural system.

    I wish there was a more generalized solution for this.

    --
    ‡ a little bit of JavaScript that any of these Browser Extensions can use:
    Violentmonkey, Greasemonkey, Tampermonkey

    #plurality

    #виброкодинг #Mastodon #MastodonTools #Вопрос #виброкодинг

    Знатоки #HTML и #JavaScript, натолкните на правильный ход мысли. Пытаюсь навиброкодить #userscript, который будет скрывать из ленты просмотренные посты, черновой вариант есть, но не могу понять/решить, как по-элегантнее присваивать посту атрибут потраченопросмотрено: как формалинизировать тот факт, что пост «был на экране», допустим, более 2 секунд, если лента думскроллится в произвольном направлении, чтобы не было ложных срабатываний для частично попавших на экран (сверху или снизу)?

    @rf
    @rur
    @Russia
    @russian_mastodon

    @pinguthom Hab mal nen #userscript, pardon #userstyle gebastelt, was dieses super… „in Druckansicht Informationen verstecken“ „Feature“ … eliminiert. 😅

    https://gist.github.com/rugk/c564274d10bc359052cfbeb5acde22ca

    https://userstyles.world/style/26535/immobilienscout24immoscout-unhide-printing-info

    www.immobilienscout24.de (ImmoScout) – un-hide printing view https://userstyles.world/style/26535/immobilienscout24immoscout-unhide-printing-info

    www.immobilienscout24.de (ImmoScout) – un-hide printing view https://userstyles.world/style/26535/immobilienscout24immoscout-unhide-printing-info - description.txt

    Gist

    Полезная тулза для ревью чата с ИИ

    Всем привет. Почти 15 лет я не писал на хабр. Я не сошел с ума (см. предыдущий пост в профиле), всё в порядке, просто дело в том, что не было достойной темы. И вот впервые за 15 лет мне сильно захотелось поделиться с обществом своим небольшим открытием. В двух словах — вчера придумал инструмент для ревью чата с ИИ по аналогии с ревью гитлаба. Дипсик написал ТЗ, код, сопроводительные документы и статью для хабра.

    https://habr.com/ru/articles/993418/

    #ИИ #review #userscript

    Полезная тулза для ревью чата с ИИ

    Всем привет. Почти 15 лет я не писал на хабр. Я не сошел с ума (см. предыдущий пост в профиле), всё в порядке, просто дело в том, что не было достойной темы. И вот впервые за 15 лет мне сильно...

    Хабр