home.social

#mastodontools — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #mastodontools, aggregated by home.social.

  1. #Mastodon #MastodonTools #статистика

    О. ВНЕЗАПНО! заработал снова очень интересный сервис:

    mastometrics.com

    Анализирует ваш аккаунт, показывает наиболее «взлетевшие» посты, но это не самая нужная функция. Еще он умеет мониторить активность ваших подписчиков и выводит список людей, которые наиболее активно вас лайкают, бустят и комментируют. (Внимание, анализ происходит на основе списка уведомлений, так что если вы его чистите — может быть неточным!)

    Конечно, реальной практической пользы с этого примерно ноль, но посмотреть очень интересно :-)
    mastometrics.com

  2. #Mastodon #MastodonTools #статистика

    О. ВНЕЗАПНО! заработал снова очень интересный сервис:

    mastometrics.com

    Анализирует ваш аккаунт, показывает наиболее «взлетевшие» посты, но это не самая нужная функция. Еще он умеет мониторить активность ваших подписчиков и выводит список людей, которые наиболее активно вас лайкают, бустят и комментируют. (Внимание, анализ происходит на основе списка уведомлений, так что если вы его чистите — может быть неточным!)

    Конечно, реальной практической пользы с этого примерно ноль, но посмотреть очень интересно :-)
    mastometrics.com

  3. #Mastodon #MastodonTools #виброкодинг #ChatGPT

    Когда выбираешь сервер для регистрации, хочется, разумеется, знать лимит на символы поста. Почему-то эту информацию все тщательно скрывают. Вот небольшой букмарклет, который выводит окошко с capabilities сервера: какой fabric сколько details лимит поста, поддержку форматирования, размеры загружаемых медиа, наличие перевода и т.д. + сырой Json со всеми остальными (не особо важными) параметрами.

    javascript:(async()=>{const s=location.hostname,u=`https://${s}/api/v2/instance`;try{const r=await fetch(u);if(!r.ok)throw new Error(`HTTP ${r.status}`);const j=await r.json(),c=j.configuration;if(!c)return alert("configuration не найден");const mime=(c.statuses?.supported_mime_types||[]).join(", ")||"—";const d=document.createElement("div");d.style.cssText="position:fixed;top:10px;right:10px;width:70vw;max-height:80vh;overflow:auto;background:#111;color:#eee;border:2px solid #4da3ff;z-index:99999;padding:16px;font:13px monospace;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.5)";d.innerHTML=`<h3 style="margin:0 0 10px;color:#6cb6ff">${s}</h3><p><b>Пост:</b> ${c.statuses?.max_characters||"—"} симв.<br><b>Медиа:</b> ${c.statuses?.max_media_attachments||"—"} влож.<br><b>Форматирование:</b> ${mime}<br><b>Изображение:</b> ${Math.round((c.media_attachments?.image_size_limit||0)/1048576)} МБ<br><b>Видео:</b> ${Math.round((c.media_attachments?.video_size_limit||0)/1048576)} МБ<br><b>Перевод:</b> ${c.translation?.enabled?"вкл":"выкл"}</p><pre style="white-space:pre-wrap;background:#1b1b1b;padding:10px;border-radius:6px">${JSON.stringify(c,null,2)}</pre>`;document.body.appendChild(d);d.onclick=e=>e.target===d&&d.remove()}catch(e){alert("Ошибка: "+e.message+"\n"+u)}})();

    P.S. Чтобы закрыть окно, надо кликнуть возле рамки.
    P.P.S. Чтобы скопировать текст — нажимайте Ctrl+C, не отпуская мышку, иначе окно закроется.

  4. #Mastodon #MastodonTools #виброкодинг #ChatGPT

    Когда выбираешь сервер для регистрации, хочется, разумеется, знать лимит на символы поста. Почему-то эту информацию все тщательно скрывают. Вот небольшой букмарклет, который выводит окошко с capabilities сервера: какой fabric сколько details лимит поста, поддержку форматирования, размеры загружаемых медиа, наличие перевода и т.д. + сырой Json со всеми остальными (не особо важными) параметрами.

    javascript:(async()=>{const s=location.hostname,u=`https://${s}/api/v2/instance`;try{const r=await fetch(u);if(!r.ok)throw new Error(`HTTP ${r.status}`);const j=await r.json(),c=j.configuration;if(!c)return alert("configuration не найден");const mime=(c.statuses?.supported_mime_types||[]).join(", ")||"—";const d=document.createElement("div");d.style.cssText="position:fixed;top:10px;right:10px;width:70vw;max-height:80vh;overflow:auto;background:#111;color:#eee;border:2px solid #4da3ff;z-index:99999;padding:16px;font:13px monospace;border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.5)";d.innerHTML=`<h3 style="margin:0 0 10px;color:#6cb6ff">${s}</h3><p><b>Пост:</b> ${c.statuses?.max_characters||"—"} симв.<br><b>Медиа:</b> ${c.statuses?.max_media_attachments||"—"} влож.<br><b>Форматирование:</b> ${mime}<br><b>Изображение:</b> ${Math.round((c.media_attachments?.image_size_limit||0)/1048576)} МБ<br><b>Видео:</b> ${Math.round((c.media_attachments?.video_size_limit||0)/1048576)} МБ<br><b>Перевод:</b> ${c.translation?.enabled?"вкл":"выкл"}</p><pre style="white-space:pre-wrap;background:#1b1b1b;padding:10px;border-radius:6px">${JSON.stringify(c,null,2)}</pre>`;document.body.appendChild(d);d.onclick=e=>e.target===d&&d.remove()}catch(e){alert("Ошибка: "+e.message+"\n"+u)}})();

    P.S. Чтобы закрыть окно, надо кликнуть возле рамки.
    P.P.S. Чтобы скопировать текст — нажимайте Ctrl+C, не отпуская мышку, иначе окно закроется.

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

    Потому что «надоело это терпеть» — дополнил скрипт скрытия прочитанных постов функцией, которая скрывает и бусты тех постов, которые я уже видел.

    Хорошо теперь. Чистенько в ленте.

    🙂

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

    Потому что «надоело это терпеть» — дополнил скрипт скрытия прочитанных постов функцией, которая скрывает и бусты тех постов, которые я уже видел.

    Хорошо теперь. Чистенько в ленте.

    🙂

  7. #виброкодинг #TODO #MastodonTools

    ...Надо бы сделать либо отдельной кнопочкой, либо принудительно в момент публикации — расстановку неразрывных пробелов в тексте.

  8. @mstadmin

    К слову про RSS — тоже может пригодиться:

    bookmark-rss.woodland.cafe/ — сервис, через который можно подписаться на собственные закладки.

    #MastodonTools #RSS

  9. #MastodonTools

    Во, кажется, связность прочухалась, и на «моем» сервере стали видны #бот​ы с tags.pub

    Суть проста: можно подписаться на любого бота вида @имя_тега@tags.pub, и он начнет бустить все посты, до которых сможет дотянутся, если там есть этот тег.

    Зачем, если есть подписка на теги?

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

  10. #Mastodon #MastodonTools #CSS

    ...Раз уж придется, наверно, иногда и на mastodon.ml заходить (ибо #GlitchSoc v 4.6.0-alpha.5 неможет федерироваться с social.sley.nl, tags.pub и хрен его знает, с чем там еще; одмины-ханжи блокируют zhub.link и вот это всио), то надо, стало быть, в форме постинга порядочек навести 😉

    .dropdown-button {
    width: 32px
    }
    .compose-form__dropdowns {
    align-self: end;
    order: 2;
    }
    .compose-form__input {
    order: 1;
    }
    .compose-form__footer {
    order: 3;
    }
  11. #Mastodon #MastodonTools #CSS

    ...Раз уж придется, наверно, иногда и на mastodon.ml заходить (ибо #GlitchSoc v 4.6.0-alpha.5 неможет федерироваться с social.sley.nl, tags.pub и хрен его знает, с чем там еще; одмины-ханжи блокируют zhub.link и вот это всио), то надо, стало быть, в форме постинга порядочек навести 😉

    .dropdown-button {
    width: 32px
    }
    .compose-form__dropdowns {
    align-self: end;
    order: 2;
    }
    .compose-form__input {
    order: 1;
    }
    .compose-form__footer {
    order: 3;
    }
  12. #MastodonTools #Fediverse

    ...А кто там давеча спрашивал про площадку для длиннопостов? Нашлось прям чудестное:

    Inkwell

    В сравнении с недоделанным Writefreely это пушкабомба: тут и хостинг картинок, и WISIWYG-редактор (при этом писать можно в Markdown, а редактировать в HTML), и каменты, и автопост анонса в слонопотамник... Выглядит очень и очень круто. Даже авторизоваться можно через аккаунт слонопотамника.

  13. #MastodonTools #Fediverse

    ...А кто там давеча спрашивал про площадку для длиннопостов? Нашлось прям чудестное:

    Inkwell

    В сравнении с недоделанным Writefreely это пушкабомба: тут и хостинг картинок, и WISIWYG-редактор (при этом писать можно в Markdown, а редактировать в HTML), и каменты, и автопост анонса в слонопотамник... Выглядит очень и очень круто. Даже авторизоваться можно через аккаунт слонопотамника.

    P.S. Есть встроенный переводчик, хотя при наличии аддона TWP - Translate Web Pages это не особо сейчас актуально.

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

    Итак! В связи с тем, что #Gemini заработал в этой стране без СМС и регистрации, первым делом скормил ему скрипт скрытия прочитанных постов для допиливания. Работает. Вот прямо так, как мне нужно было 😀 👍

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

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

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

    Known Issues:

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

    Забирайте, пробуйте, ставьте лайки, спрашивайте вопросы, предлагайте предложения!

    github.com/Johan-foreva/Mastod

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

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

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

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

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

    Known Issues:

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

    Забирайте, пробуйте, ставьте лайки, спрашивайте вопросы, предлагайте предложения!

    github.com/Johan-foreva/Mastod

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

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

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

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

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

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

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

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

  17. #Fediverse #Mastodon #MastodonTools

    Во какая фигня у нас появилась: Holos Discover — opt-in поисковик по постам Федиверса. Пишут, что очень уважают прайваси, легко включать/отключать и блокировать, обещают не индексировать френдс-онли посты...

    Но на всякий случай будьте внимательны, если эта пепяка подпишется на вас 😉

  18. #Fediverse #Mastodon #MastodonTools

    Во какая фигня у нас появилась: Holos Discover — opt-in поисковик по постам Федиверса. Пишут, что очень уважают прайваси, легко включать/отключать и блокировать, обещают не индексировать френдс-онли посты...

    Но на всякий случай будьте внимательны, если эта пепяка подпишется на вас 😉

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

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

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

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

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

    @rf
    @rur
    @Russia
    @russian_mastodon

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

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

    @rf
    @rur
    @Russia
    @russian_mastodon

  22. #fediverse_ppl #смищно #Firefox #addons #ТрудностиПеревода #NeuralNetwork #userscript #Mastodon #MastodonTools

    Лол, кек. Удивительно непонятное, но от этого иещеболее занятное взаимодействие переводчика, который (каюсь, грешен) иногда включаю в ленте, и юзерскрипта, чтобы комментировать кого-то вот прямо в ленте.

    В комментарии — только 🚫 🤖— как напоминание о том, что @iron_bug не приемлет генерацию. Уважаю, позывы сдерживаю. Откуда берется такая интерпретация — совершенно непонятно. Пробовал добавлять тот же комментарий другим пользователям — не работает.

    P.S. Сейчас у кого-то, кажется, подгорит на тему «мои посты отправляются на сервера гугла без моего ведома, а я всего-то хотела посрать на площади, прикрываяь ладошкой».

    Блок через 5-4-3-2...

  23. #fediverse_ppl #смищно #Firefox #addons #ТрудностиПеревода #NeuralNetwork #userscript #Mastodon #MastodonTools

    Лол, кек. Удивительно непонятное, но от этого иещеболее занятное взаимодействие переводчика, который (каюсь, грешен) иногда включаю в ленте, и юзерскрипта, чтобы комментировать кого-то вот прямо в ленте.

    В комментарии — только 🚫 🤖— как напоминание о том, что @iron_bug не приемлет генерацию. Уважаю, позывы сдерживаю. Откуда берется такая интерпретация — совершенно непонятно. Пробовал добавлять тот же комментарий другим пользователям — не работает.

    P.S. Сейчас у кого-то, кажется, подгорит на тему «мои посты отправляются на сервера гугла без моего ведома, а я всего-то хотела посрать на площади, прикрываяь ладошкой».

    Блок через 5-4-3-2...

  24. #fediverse #fediadmin #poweruser #mastodontools #fedihelp

    Ich suche ein Mastodon Tool egal ob Web oder für Linux welches:
    "threads" geplant posten kann.
    Bitte keine komerziellen tools.

    Vorschläge?

  25. #Mastodon #MastodonTools #виброкодинг #userscript #NeuralNetwork #Grok #ЯСделяль

    Вотх, навиброкодил с помощью Grok (гопота не осилила, заковырявшись в простейшем алгоритме) юзерскрипет для #tampermonkey.

    Алгоритм примерно такой: если вы смотрите на пост больше секунды (настраивается) — при прокрутке за границы экрана он скрывается.

    Добавляется кнопочка показа / скрытия просмотренных постов.

    ID 1000 последних постов запоминаются в локальном хранилище (после перезагрузки страницы всё равно не видны).

    Потратил на пинание искусственных идиотов более шести часов (!). Подозреваю, что если бы знал жаваскрипт, управился бы за полтора, но поскольку кроме меня эта идея никому не пришла... Имеем то, что имеем. Пользуйтесь.

    [Userscript для скрытия просмотренных постов.(]github.com/Johan-foreva/Mastod)

  26. #Mastodon #MastodonTools #виброкодинг #userscript #NeuralNetwork #Grok #ЯСделяль

    Вотх, навиброкодил с помощью Grok (гопота не осилила, заковырявшись в простейшем алгоритме) юзерскрипет для #tampermonkey.

    Алгоритм примерно такой: если вы смотрите на пост больше секунды (настраивается) — при прокрутке за границы экрана он скрывается.

    Добавляется кнопочка показа / скрытия просмотренных постов.

    ID 1000 последних постов запоминаются в локальном хранилище (после перезагрузки страницы всё равно не видны).

    Потратил на пинание искусственных идиотов более шести часов (!). Подозреваю, что если бы знал жаваскрипт, управился бы за полтора, но поскольку кроме меня эта идея никому не пришла... Имеем то, что имеем. Пользуйтесь.

    Userscript для скрытия просмотренных постов.

  27. #Mastodon #MastodonTools

    Странно, что я зарегился, но почему-то не пользовался сервизом отложенного/запланированного постинга Publer. А оказалось, что среди всех он единственных может в длиннопосты для слоновника: остальные ограничивают 500 символами либо предлагают расширение на платных тарифах.

    В остальном там ± как у всех: черновики, календарь, ИИшница (вроде бесплатно, но только на английском), неработающий аддон для браузера. В общем и целом по функционалу Buffer лучше, но ограничение в 500 символов угнитает.
    app.publer.com/

  28. #Mastodon #MastodonTools

    Странно, что я зарегился, но почему-то не пользовался сервизом отложенного/запланированного постинга Publer. А оказалось, что среди всех он единственных может в длиннопосты для слоновника: остальные ограничивают 500 символами либо предлагают расширение на платных тарифах.

    В остальном там ± как у всех: черновики, календарь, ИИшница (вроде бесплатно, но только на английском), неработающий аддон для браузера. В общем и целом по функционалу Buffer лучше, но ограничение в 500 символов угнитает.

  29. #Mastodon #MastodonTools #дизигн #NeuralNetwork #виброкодинг #митол #CSS

    Ура, при помощи #ChatGPT, такой-то матери и китайского блэка¹ (ЗБС, кстати) на фоне я зделол это!!!

    Было — стало.

    Заебись я хакир? 😉

    ¹ Кто торренты не котирует, вот вам стриминги и бандкампф.

  30. #Mastodon #MastodonTools #дизигн #NeuralNetwork #виброкодинг #митол #CSS

    Ура, при помощи #ChatGPT, такой-то матери и китайского блэка¹ (ЗБС, кстати) на фоне я зделол это!!!

    Было — стало.

    Заебись я хакир? 😉

    ¹ Кто торренты не котирует, вот вам стриминги и бандкампф.

  31. #Mastodon #MastodonTools #GlitchSoc #виброкодинг #ChatGPT #NeuralNetwork

    ВАРНИНГ! Всё ниже написанное актуально только для серверов с glitch-soc, тем, кто сидит на ванильке, можно не читать.

    А остальные — признайтесь, кого не бесит лишний клик при добавлении картинки? Ведь никто не пользуется этой дудль-рисовалкой, реально.

    Поэтому, покумекав, родили такой скрипт для #Tampermonkey

    // ==UserScript==
    // @name Button triggers LI click & hide menu
    // @description Button triggers LI click & hide menu
    // @version 0.1
    // @match https://cr8r.gg/*
    // @match https://tilde.zone/*
    // @match https://infosec.exchange/*
    // @match https://expressional.social/*
    // @match https://toot.cat/*
    // @run-at document-idle
    // ==/UserScript==

    (function() {
    'use strict';

    // Интервал для поиска кнопки
    const buttonInterval = setInterval(() => {
    const button = document.querySelector('.compose-form__upload-button button');
    if (button) {
    clearInterval(buttonInterval);
    // console.log('Button found!');

    // Навешиваем обработчик на кнопку
    button.addEventListener('click', () => {
    // console.log('Button clicked, waiting for LI...');

    // Создаём MutationObserver на body
    const observer = new MutationObserver(mutations => {
    for (const mutation of mutations) {
    for (const node of mutation.addedNodes) {
    if (node.nodeType === 1) { // только элементы
    const li = node.querySelector('li[data-index="upload"]');
    if (li) {
    // Скрываем родительский div
    const container = li.closest('div');
    if (container) container.style.display = 'none';
    // console.log('Upload menu hidden immediately!');

    // Вызываем клик на li
    li.click();
    // console.log('LI clicked automatically!');

    // Отключаем observer
    observer.disconnect();
    return;
    }
    }
    }
    }
    });

    // Наблюдаем только за вставкой новых узлов
    observer.observe(document.body, { childList: true, subtree: true });
    });
    }
    }, 250); // ищем кнопку каждые 250 мс

    })();

    Он что делает: обрабатывает клик по кнопке добавления медии, скрывает менюшку с выбором и сам «кликает» на добавление картинки. Мелочь (да какая, к черту, мелочь — дико бесит же, ну!), а приятно.

  32. #Mastodon #MastodonTools #GlitchSoc #виброкодинг #ChatGPT #NeuralNetwork

    ВАРНИНГ! Всё ниже написанное актуально только для серверов с glitch-soc, тем, кто сидит на ванильке, можно не читать.

    А остальные — признайтесь, кого не бесит лишний клик при добавлении картинки? Ведь никто не пользуется этой дудль-рисовалкой, реально.

    Поэтому, покумекав, родили такой скрипт для #Tampermonkey

    // ==UserScript==
    // @name Button triggers LI click & hide menu
    // @description Button triggers LI click & hide menu
    // @version 0.1
    // @match https://cr8r.gg/*
    // @match https://tilde.zone/*
    // @match https://infosec.exchange/*
    // @match https://expressional.social/*
    // @match https://toot.cat/*
    // @run-at document-idle
    // ==/UserScript==

    (function() {
    'use strict';

    // Интервал для поиска кнопки
    const buttonInterval = setInterval(() => {
    const button = document.querySelector('.compose-form__upload-button button');
    if (button) {
    clearInterval(buttonInterval);
    // console.log('Button found!');

    // Навешиваем обработчик на кнопку
    button.addEventListener('click', () => {
    // console.log('Button clicked, waiting for LI...');

    // Создаём MutationObserver на body
    const observer = new MutationObserver(mutations => {
    for (const mutation of mutations) {
    for (const node of mutation.addedNodes) {
    if (node.nodeType === 1) { // только элементы
    const li = node.querySelector('li[data-index="upload"]');
    if (li) {
    // Скрываем родительский div
    const container = li.closest('div');
    if (container) container.style.display = 'none';
    // console.log('Upload menu hidden immediately!');

    // Вызываем клик на li
    li.click();
    // console.log('LI clicked automatically!');

    // Отключаем observer
    observer.disconnect();
    return;
    }
    }
    }
    }
    });

    // Наблюдаем только за вставкой новых узлов
    observer.observe(document.body, { childList: true, subtree: true });
    });
    }
    }, 250); // ищем кнопку каждые 250 мс

    })();

    Он что делает: обрабатывает клик по кнопке добавления медии, скрывает менюшку с выбором и сам «кликает» на добавление картинки. Мелочь (да какая, к черту, мелочь — дико бесит же, ну!), а приятно.

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

    В связи с новостью о скором (in a few weeks — «улита едет, когда-то будет») внедрении цитирования постов, камрад @liilliil высказал вполне закономерную мысль о том, что оно как бы уже есть — превью-карточки на основе Open Graph метадаты¹ показываются... но не в случае со ссылками на посты в слоновнике, хотя там вся мета вполне присутствует.

    Поэтому, покумекав с #ChatGPT, было выработано решение сделать типа «прокси». Пользоваться так:

    1. Делаем
  34. #Mastodon #MastodonTools #CSS #UI

    Видел вчерась в ленте псто недовольства огромными кнопками выбора языка и видимости поста (думаю, это никому не по нраву, просто все молчат).

    Какова была мотивация Евгена вынести самые редко используемые кнопки на самое видное место — мне неведомо, но вот код, который это исправляет.

    .dropdown-button {width: 32px}
    .compose-form__footer {flex-direction: row-reverse;}
    .compose-form__dropdowns {flex-direction: column; align-self: flex-end;}
    .compose-form__actions {flex: 1 0 auto; gap: 6px; width: min-content;}
  35. #Mastodon #MastodonTools #CSS #UI

    Видел вчерась в ленте псто недовольства огромными кнопками выбора языка и видимости поста (думаю, это никому не по нраву, просто все молчат).

    Какова была мотивация Евгена вынести самые редко используемые кнопки на самое видное место — мне неведомо, но вот код, который это исправляет.

    .dropdown-button {width: 32px}
    .compose-form__footer {flex-direction: row-reverse;}
    .compose-form__dropdowns {flex-direction: column; align-self: flex-end;}
    .compose-form__actions {flex: 1 0 auto; gap: 6px; width: min-content;}
  36. #Mastodon #MastodonTools

    Слоновник странный. Он пережимает #WebP всегда. Даже если это lossless; даже если размер получается больше исходного. Второе — плохо, а из первого следует, что загружать картинки нужно в lossless WebP: раз уж картинка пересжимается в любом случае, то пусть хотя бы один раз, а не несколько.

  37. @mxkriss @rayslava

    Я про это периодически пишу под тегом #MastodonTools, основное — это

    .column {flex:1 0 auto}
    .drawer {width: 380px}

    Но так-то у меня там ~150 строк 😉

  38. #MastodonTools #виброкодинг

    Запилил еще одну интерфейсную шпульку, которая, по идее, будет интересна уже более широкому кругу пользователей.

    Что делает

    • подсвечивает аккаунты, сервера которых вы укажете: боты, мосты, места, где вас всё равно забанили — ну, чтобы не беседовать с копипастой 😉 Это хардкодится в самом скрипте в самом начале.
    • Можно добавлять свои комментарии к конкретным пользователям, будут после ника в скобочках.

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

    Добавление камента — через новую кнопочку в меню. В первом запросе пишем ID, во втором — камент. Если камент пустой, запись удоляется.

    Я не стал пихать стилизацию прямо в скрипт, подразумевая, что без внешнего CSS пользоваться стандартным вебмордием всё равно невозможно. Там два класса: первый, это для подсветки ID'а, второй — для комментария.

    .highlight-account {
    color: #b30000 !important;
    font-weight: bold !important;
    }
    .personal-user-note {
    color: #b30000 !important;
    font-weight: bold !important;
    }

    pastebin.com/mNKY3JHB

    @rf
    @Russia
    @russian_mastodon

  39. #MastodonTools #виброкодинг

    Запилил еще одну интерфейсную шпульку, которая, по идее, будет интересна уже более широкому кругу пользователей.

    Что делает

    • подсвечивает аккаунты, сервера которых вы укажете: боты, мосты, места, где вас забанили или разрушена федерация — ну, чтобы не беседовать с копипастой 😉 Это хардкодится в само́м скрипте в са́мом начале.
    • Можно добавлять свои комментарии к конкретным пользователям, будут после ника в скобочках.

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

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

    Добавление камента — через новую кнопочку в меню. В первом запросе пишем ID, во втором — камент. Если камент пустой, запись удоляется.

    Я не стал пихать стилизацию прямо в скрипт, подразумевая, что без внешнего CSS пользоваться стандартным вебмордием всё равно невозможно. Там два класса: первый, это для подсветки ID'а, второй — для комментария.

    .highlight-account {
    color: #b30000 !important;
    font-weight: bold !important;
    }
    .personal-user-note {
    color: #b30000 !important;
    font-weight: bold !important;
    }

    pastebin.com/RVZnpZjh

    P.S. Подразумевается многоколоночный режим. В одноколоннике кнопка не установится.

    @rf
    @Russia
    @russian_mastodon

  40. В общем, слонята, скрипт Markdown Live Preview, я считаю, вполне закончен и пригоден к использованию.

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

    Поэтому для себя просто захардкодил в пикселях (в скрипте помечено, где править), тем более что я размеры браузера никогда не меняю.
    Если вдруг кто осилит добавить эту фичу — буду премного благодарен.

    Что делает:

    • Окно ввода — маленькое и фиксированное, в него набирается текст в #Markdown-разметке (к сожалению, эту фичу поддерживают только сервера с glitch-soc)
    • В окошке под ним в реальном времени отображается отформатированный в стилях Мастодона текст
    • Не нужно рендерить Markdown «в голове» — все ошибки видны
    • Можно набирать текст, глядя сразу в окно предпросмотра (если вас не смущает отсутствие курсора в нем)
    • После отправки текст не исчезает, что порадует тех, кто пользуется одноколоночным режимом: можно перечитать, не уходя из ленты. Очищается клавишей Esc
    • Синхронизация прокрутки через «липкий скролл» гарантирует, что набираемый текст всегда будет виден

    Понимаю, конечно, что #glitch-soc используют полтора землекопа,
    но если вдруг кому зайдёт — буду очень рад 😊

    Скрипт работает в Tampermonkey в любом браузере.
    Пользуйтесь на здоровье, шлите багрепорты, пожелания и предложения!

    @rf
    @Russia
    @russian_mastodon

    #userscript #UX #UI #MastodonTools #Tampermonkey #Mastodon #GlitchSoc #Markdown #виброкодинг #ChatGPT

  41. @menelion

    #Firefox #addons

    Search all Tabs

    «Поиск по всем вкладкам» добавляет в ваш браузер возможности поисковых систем. После открытия всплывающего окна расширения оно начнёт создавать базу данных, индексируя все открытые вкладки и элементы фреймов. Этот процесс индексации обычно занимает около одной секунды для небольшого количества вкладок (около 30). Вы можете просмотреть количество проиндексированных документов в пользовательском интерфейсе и начать поиск по вашему запросу сразу после открытия всплывающего окна. После завершения процесса индексации расширение автоматически выполнит ваш поисковый запрос и отобразит релевантные результаты в порядке их релевантности. При нажатии на каждый результат поиска фокусируется на соответствующей вкладке и выделяется релевантный контент для более удобного отслеживания. Вы можете использовать большинство поисковых операторов в своём запросе. Обратите внимание, что это расширение не взаимодействует ни с какими серверами, поскольку все операции индексирования и поиска выполняются локально на вашем компьютере и удаляются из памяти после закрытия всплывающего окна.

    Функции

    • Индексирует и ищет все вкладки во всплывающем окне.
    • Не взаимодействует ни с какими серверами для индексации и поиска.
    • Не хранит ничего локально, за исключением временно выделенной памяти.
    • Индексация не начинается до открытия всплывающего окна, поэтому она не влияет на производительность браузера во время навигации.

    **Search all Tabs

    Ну и вторым аддоном стоит TabSearch, оно искать по контенту не умеет, только по заголовкам, но зато уже отображает скролл с табами.

    Удобно, что показывает на своей иконке количество наоткрытого 😉

    Оба они некоторое время еще помнят «закрытое» и тоже можно найти.

    Минусы

    Поиск всё-таки неидеальный.

    RE: dragonscave.space/@menelion/11

    #userscript #MastodonTools #Tampermonkey #Mastodon #GlitchSoc #Markdown

  42. #CSS #javascript #userscript #UX #UI #MastodonTools #Tampermonkey #Mastodon #GlitchSoc #Markdown

    Прикрутил к «холодильнику» Markdown Editor Enchancer'a распознавание тегов. Теперь не только юзернеймы, но и теги в окошке просмотра — это реальные кликабельные ссылки.

  43. #CSS #javascript #userscript #UX #UI #MastodonTools #дизигн

    А гляньте, как стильно смотрится в однокомнатной кухне 😉

  44. #CSS #javascript #userscript #UX #UI #MastodonTools #дизигн

    #Вопрос: кому-нибудь в здравом уме вообще может понадобиться, чтобы в окне просмотре теги не только выглядели как ссылки, но и риальни вели куда-то?.. 🤔

  45. #CSS #javascript #userscript #UX #UI #MastodonTools #дизигн #мюсли

    Как засунуть Мастодонта в холодильник?

    Как интегрировать нормальный дизигн в #Mastodont, вот в чём вопрос! 🤔

  46. #userscript #MastodonTools #вдогонку #NeuralNetwork

    У-у-ухъ!

    Код не читай — сразу запускай! 😡

    Отсутствие контроля за говном, написанным ИИшницей, которое было «похоже на правду» — только что стоило мне проебанного длиннопоста на пол-экрана 😭

    Причем. Самое блядство — это то, что написано было там В точности наоборот относительно того, что я просил! 😤 Причем зловредный кусок кода был не нужен!

    А в итоге? Виноват-то всё равно мясной им не стыдно, зато токенов наелись... 🍖