TabunAva - "ремонт" аватарок Табуна

Громко сказано. На самом деле, я просто взял IDENTICON и подставил ссылку оттуда в скрипт TABUN SWARM для Tampermonkey.

Добавляет всем «безликим» аватарки из IDENTICON. Работает, как «Tabun Swarm» от seshok .

TabunAva


(Вышла новая версия: ПОСТАВЬ СВОЮ АВАТАРКУ!)
Это не очень много, но зато теперь можно быстро различать людей во время срачей:

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

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

Niko_de_Andjelo
0
Маленькое начало большой работы
GreatDragonLord
+1
Аватарки сейчас это тест на олдфажность)) Что бы можно было отличить аватаркобояр, от безликих холопов)
Irbis
+2
Любой эпохе должен прийти конец. Редактирование-таки вернули, вернут и аватарки с поиском. Только доживут до этого не все…
Necto
+2
Только доживут до этого не все…

ага, не только лишь все^^
akela
0
Вроде редактирование и не пропадало
V747
0
Неее, когда-то давно оно было сломано, все кричали орхиверниредактирование, и потом его всё же вернули.
Dany
+5
ох чего только на табуне не отваливалось.
akela
+1
Даже регистрация))
Irbis
+2
а это уже вроде как специально блокировали?
akela
0
Не совсем так)
Irbis
+1
— Дааа…
DxD2
0
Взять MonsterID и переделать под генерацию поней )
andreymal
+3
C другой стороны люди учатся читать. Я заметил что давно уже ориентируюсь больше на образ ника, воспринимая его словно это своеобразный иероглиф.
akela Изменён автором
+4
Скрипт работает просто замечательно, но было бы желательно кинуть ссылку не на гуглодоки, а на установку напрямую или с Greasyfork.
Danil_Otritsevski
+2
Ща попробуем разобраться, как енто делается

Готово. Оказывается, это в миллиард раз проще, чем я думал
Niko_de_Andjelo Изменён автором
+2
Супра. Щас тогда обновлю свой постик со скриптами.
Danil_Otritsevski
+2
и сюда ссылку на пост не забудь выложить^^
akela
+1
Имеет ли смысл? Уже успели новую версию сварганить за рабочий день, лул
Danil_Otritsevski
0
Н-да… В общем, новую добавь, а старую не удаляй, я хз, но вдруг кто-то хочет различать людей во время срача визуально, но по квадратикам, а не по их собственным авам
Niko_de_Andjelo
0
Ты и старую версию обновил: ссылка теперь ведёт на апгрейд до Reborn, притом что итак есть отдельный скрипт Reborn-версии.
Danil_Otritsevski Изменён автором
0
Там можно выбрать старую версию через историю версий, на всякий случай обновил. не знаю. я запутался.
Niko_de_Andjelo
+1
Та всё нормально: разобрался, дал новые ссылки.
Мне просто казалось, ты если создашь новую версию, то старую для любителей крупных пикселей трогать не будешь.
Danil_Otritsevski
0
Мне просто казалось, ты если создашь новую версию, то старую для любителей крупных пикселей трогать не будешь.

Я так и хотел сделать, а потом запутался
Niko_de_Andjelo
0
Эти квадратики назначаются у каждого пользователя по разному, верно? После перезапуска браузера останутся ли «аватарки» или сменятся?
KaskeT
0
Они запрашиваются откуда-то с ихнего сервера, где стоит генератор, который генерит их по хешу переданного seed. Следовательно, генерация зависит только от не моего генератор и ключа. Генератор вроде менять не собираются, а ключ для каждого пользователя уникален и неизменен — его псевдоним. Поэтому они должны выглядеть одинаково у всех, и после перезапуска тоже.
Niko_de_Andjelo
0
Ну вот собственно да, выглядят одинаково. Единственный момент — запрос аватарки выдаёт 500 ошибку по неизвестной мне причине в старых постах и иногда в новых.

Вот как здесь. У тебя в гуглхроме есть ава, а в Эдже 500 ошибка

П.С, Дело видимо в том, что HTTP-API сделано любителем на любительских мощностях, и оно не всегда справляется с нашими запросами
Niko_de_Andjelo Изменён автором
0
Сейчас пост перезагрузил и аватарки все сломались. Ну, кроме родных табунских. Браузер Файрфокс.
KaskeT
+1
Если моя догадка верна, то через время должны заработать снова. Я пока попробую разобраться со вторым способом

NPM#
Install the Avatars and this avatar style with the following command.

npm install --save @dicebear/avatars @dicebear/avatars-identicon-sprites
Now you are ready to create your first Avatar.

import { createAvatar } from '@dicebear/avatars';
import * as style from '@dicebear/avatars-identicon-sprites';

let svg = createAvatar(style, {
  seed: 'custom-seed',
  // ... and other options
});


Вот признаюсь честно — я пока даже не знаю, куда этот код вставить, чтобы он работал
Niko_de_Andjelo
0
У меня вернулось.
KaskeT
0
И опять отвалилось =(
KaskeT
0
И опять вернутся) Я же говорю, там с сервером какие-то проблемы возникают, 500 ошибка. Которая буквально значит «какие-то проблемы». Нам нужно поднять свой сервер с генератором этих идентиконок.
Niko_de_Andjelo
0
— Лапа, не надо воспринимать сервер, как нечто мистическое.
В первую очередь, это просто компьютер, где мы работаем с программами.
npm
— Это менеджер пакетов.
npm install --save @dicebear/avatars @dicebear/avatars-identicon-sprites
— соотвественно, команда, которая устанавливает генератор ав.

После того, как мы установили необходимые зависмости на наш сервер, мы можем использовать эту либу.

import { createAvatar } from '@dicebear/avatars';
import * as style from '@dicebear/avatars-identicon-sprites';

let svg = createAvatar(style, {
  seed: 'custom-seed',
  // ... and other options
});

— Это уже пример кода node.js, где мы используем генератор ав.
Советую посмотреть туториалы по node.js, и многое станет сразу ясно.
NightPony
+2
Хм, а как я могу потом сделать запрос этому серверу?
Вы предлагали помощь в виде мощностей, и я думаю, что она не помешает, если вы сможете запустить этот код у себя, потому что я всё ещё мало что понял. Ну а я успешно отредактирую ссылку запроса, чтобы обращаться на ваш сервер.
Причина банальная: все identicon здесь то работают, то не работают, по крайней мере у меня, выдавая 500-ю ошибку сервера. Я не представляю, с чем это связано, но может быть, их сервер не справляется или считает миллиард запросов моего скрипта спамом.
Niko_de_Andjelo
0
Как сделать запрос? Так же, как и сейчас делаешь.
У сервера есть IP, интернет адрес, к которому можно будет обратиться.
Программа на сервере ловит эти запросы и обрабатывает.
Правда, в реальности, просто ip'шник использовать не выйдет, придётся взять домен и получить ssl-сертфикат на него.
NightPony
+1
Я для кого мануал писал по поводу того «как поднять локальный табун»? Почему кодеры вроде и есть, а делают что-то не то :/
Ponywka
+1
Хорошее начало и идея.
Думаю, стоит сделать отдельный ресурс, куда пользователи смогут загрузить аватарки, а скрипт будет запрашивать их оттуда. На самом деле, делается не сложно. Я бы и сам занялся, если бы не дела, увы… Впрочем, если в районе зимы тема будет ещё актуальна, то буду рад помочь.
NightPony
+1
Впрочем, если нужна будет помощь мощностями, то могу дать в любой момент.
NightPony
+2
Ну, изначально у меня была идея именно identicon присобачить, только опоняшить его, как на дерпибуре. Там, правда, не совсем идентификационные иконки, насколько я понимаю, но в целом анонимы получают автогенерированные пони-авы.
Потом я понял, что это а) сложно и б) на табуне авы имею размер 24 пиксела, и мелкие отличия будут неразличимы. Отсюда я полностью отказался от идеи понифицированных иконок. ИМХО, это невозможно. Если кто-то придумает поняшный и хорошо различимый дизайн — будет круто, но я не могу.

Твоя идея у меня была как программа-максимум, но реализация для меня — сложная.
Как это вижу я (а эта переделка чужого скрипта через боль и страдания — моя первая попытка в веб!): нужен скрипт и сервер, а на сервере нужна ещё хитрая авторизация через табун (например через отправку секретного сообщения в личку боту на табуне), чтобы тролли и мимокрокодилы не могли поменять чужие авы. У меня мозг болит от одной только мысли об этом
Niko_de_Andjelo
+1
Могу поделиться кодом для отправки сообщений через Табун, но он на Node.JS
Ponywka
+1
Сама либа: 20101010.xyz/public/TabunJS/Tabun.js
Зависимости: axios form-data jsdom
Использование:
const Tabun = require("./service/Tabun");
const tabun = new Tabun();

tabun.login({
    login: 'login',
    password: 'password'
}).then(() => {
    tabun.sendMessage({
        users: "Ponywka",
        title: "Запрос на авторизацию",
        text: "Sample text"
    }).then(()=>{
        console.log("Sended!");
    });
});
Ponywka
+2
Спасибо, но это слишком оптимистично. Боюсь, что я даже не понимаю, что здесь происходит. Web — явно не моё. Я просто мимо пробежал, дал костыльное решение, ну а дальше помочь Табуну в силах только Знающие.
Нет, я серьёзно, у меня нуль понимания. Вот например что это такое?
tabun.everypony.ru/blog/uniblog/203676.html#comment13514530
Это надо на сервере запускать? А как потом делать туда запросы? Или туда не надо делать запросы? Или что это вообще такое? Какие-то node.js пакеты, что это?
Как я понял — node.js это какой-то особой интерпретатор js на стероидах. Следовательно, его треба ставить. Я не заставлю всех ставить его вместе со скриптом, значит он серверный. Ну а дальше возвращаемся к тому, что я ничего о нём не знаю, и даже не вполне понимаю, что делать тот код и как с ним обращаться.
Niko_de_Andjelo
0
на табуне авы имею размер 24 пиксела, и мелкие отличия будут неразличимы


Быстропроверка показала, что 24х24 вполне различимы если использовать тёмный фон. Со светлым (или без) яркие пони иногда сливаются и не так различимы
KaskeT
0
Ну, у тебя различия очень даже не мелкие. Они стоят в профиль и в анфас, это портреты, попы и попометки.
А как мы можем генерировать поней? Ну, допустим, мы найдём художника пиксель-артиста (24*24 всё же лучше отдать им, я так думаю). Что он может сделать? Нарисовать N причёсок, несколько выражений морды лица, ну и всё это в профиль и анфас (хотя одна пони в профиль у одного юзера, и такая же в анфас у другого будут смотреться странно). Потом автогенератор будет комбинировать фоторобот и заливать лицо, глаза и гриву случайным цветом. Не знаю, смотреть нужно, в общем.
Niko_de_Andjelo
0
еще не забывай про ушки и пол, а так же рога, крылья и хвост^^
Если даже по простому докрутить возможность выбирать расу и пол то уникальность вполне достижима. А количество уникальных поняшь можно примерно прикинуть отсюда «Активные: 1735»
Да и насчет аватарок достаточно много спрайтов уже есть, но конечно неплохо сделать уникальные именно под табун
akela
0
Как вариант дать пользователю самому загрузить картинку нужного размера/формата.
KaskeT
0
Есть два пути.
Генерация картинки на сервере по ключу — очень просто, но пользователь не может влиять на результат (в лучшем случае можно считывать male/female версию анонимной аватарки, и делать на этом различие некоторое). Такие картинки строго вычислительные, и не требуют средств хранения на сервере.
И влияние на картинку с помощью авторизации, что потребует не только серверный генератор, но и какую-то БД? Это помимо собственно прикручивания авторизации.
Ну и нечто-то среднее можно придумать. А именно: пользователи оставляют аватарку в особом заранее обговоренном месте. Например в разделе «о себе» на своей странице. И тогда скрипт просто вытащит её оттуда. Для такого способа вроде даже сервер не нужен. Другой вопрос, что я не уверен, как это скажется на производительности и в целом на удобстве.

Кстати, третий путь мне сейчас начинает нравится своей простотой. Ещё можно запилить отдельный аватарочный пост, где пользователь зальёт коммент со своей новой авой.
А мой скрипт, встретив такого пользователя на табуне без авы, пойдёт в этот пост, найдёт его коммент, возьмёт из него аву и влепит её куда положено. Для обновления авы нужно будет сделать коммент ниже.
И тут мне уже спецы по Табуну нужны: Табун не ляжет от кучи постоянных запросов в пост с этими авами?
Ещё наверное можно сохранять все эти авы локально, и обновлять их раз в несколько дней. Но хотят ли табунчане хранить до 1700 аватарок? И можно ли это сделать через js? Я не знаю.
Niko_de_Andjelo
0
Из тех что я сделал, самая большая весит 16,8 Кв, округлим до 20 Кв. Возьмём количество пользователей за 2000 (в ожидании наплыва и просто резервируя), получаем 40 000 Кв, разделим на 1024, получим 39,0625 Мв. Не самый большой объём серверного пространства нужен для постоянного хранения.
Есть смайлопак, а будет аватаркопак.
KaskeT
0
Дело не в объёме, а в БД, не буду же я их просто кидать в какую-то директорию. Хотя хз, я в серверах не шарю
Niko_de_Andjelo
0
Niko_de_Andjelo
0
Ага, я идиот. Оказывается, я не могу в js пойти и посмотреть содержимое незагруженной страницы. Следовательно, не могу прочитать оттуда картинки. Я же правильно это понимаю?
Niko_de_Andjelo
0
<img src="//cdn.everypony.ru/storage/01/49/01/2021/11/14/f57b6dcb07.png">

Если так то лучше?
KaskeT
0
Если я правильно понимаю свою проблему, то она заключается в следующем:
По условию задачи скрипт должен при загруженной произвольной странице X прочитать данные с определённой страницы N.
Если люди будут писать в начале коммента свою аву, то да, всё просто. Но зачем тогда скрипт, если они и так будут писать свою аву?.. А если нет, то скрипту нужно вытащить аву с другой страницы. А он не может пойти гулять по другой странице. Если авы будут лежать на сервере, то всё просто — загружаешь картинку по заранее определённой ссылке. Я хотел поступить «хитроумно» и вытаскивать авы из соседнего поста, вместо держания своего сервера, но оказалось, что так нельзя, судя по всему.
Niko_de_Andjelo
0
Но они же и лежат на сервере табунском, куда загружаются картинки. Ты можешь привязать пользователя к картинке стягивая её с табунского картинкохранилища. Те не каждый раз проверяя пост, а зафиксировать и каждый раз давать её.
Или нужен бот, который будет ползать по посту и давать инфу скрипту.
KaskeT
0
ы можешь привязать пользователя к картинке стягивая её с табунского картинкохранилища.

Как? Прописав связку вручную в скрипте? У меня других идей просто нет
Niko_de_Andjelo
0
Хз, я в этой области разбираюсь меньше тебя. Так что, любые твои идеи для меня что откровения.
KaskeT
0
Так, я скопировал чей-то код, наугад потыкал кнопочки, и смог загрузить твою аву из того поста в этом посте. Если честно, я хз что там происходит, и даже если оно щас заработает — это будет скорее всего тихий ужас и машина по укладке твоего пк + сервера табуна вместе взятых, но попробовать стоит.
Niko_de_Andjelo
0
оно работает 0_0
Niko_de_Andjelo
0
Работы и правда не мало. И ты в целом прав на тему того, как оно должно быть. Но, ничего невозможного. В целом, будь я на твоём месте, то сделал что-нибудь вроде такого:

1) Реализовал бы с помощью Flask/Django второе, правда, оверкилл приложение с такой логикой: есть возможность зарегистрироваться, тогда приложение сгенерирует и отправит в личку Табуна пароль для захода. При логине, пользователь получает доступ к странице, где он может залить свой аватар.
2) Хранить связку пользователь-пароль-пикча в базе данных
3) Tamper отправляет запросы к серверу, которые ловятся чем-нибудь на FastAPI, и возвращаются ответы из прочтённой БД.

Набросок для лучшего понимания (я не архитектор, не бейте)

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

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

Я был бы рад помочь, но увы, занят до середины зимы. Но всегда готов помочь советом или предоставить мощности, чтобы оно работало. В любом случае, удачи. Ты молодец, что начал что-то делать, это крайне похвально.
NightPony
+4
Это уже много лет назад предлагали кстати
andreymal
+2
— Ну… Не удивительно, идея-то на поверхности.
М-дя, целые веб-сервисы, как костыли — вот это масштаб. Впрочем, главное, чтобы работало.
NightPony
+3
— проблемы новичков :3
numerodin
0
А ты разделяешь людей на олдов и ньюфагов?
Ponywka
+1
Как что-то плохое)
adeptus_monitus
0
Было б это проблемой только ньюфагов, ах если бы…
Night_Song
+1
Чисто из интереса: если технические проблемы Табуна реально решит кто-то из пользователей, ему выплатят собранные в полоске 74065Р?)))
niklaykin
+1
если все решит то думаю да(но лучше договориться на берегу) хотя там сумма на починку плюс если вдруг что останется на оплату серверов. И кстати вроде на оплату уже берут недостающую часть почти каждый месяц. Но вообще это просто костыли, надо переделать сайт под новые стандарты фактически сделать с нуля, но с похожим дизайном.
akela
+2
надо переделать сайт под новые стандарты фактически сделать с нуля, но с похожим дизайном

Я не думаю что это того стоит. Можно и удобный API запилить для Табуна, вот только кто будет писать под него программы? Мне кажется никто делать не будет.
Как по мне достаточно устранить существующие проблемы, ну и под мобилки немного оптимизировать сайт и уже будет замечательно, но это только моё мнение.
Ponywka
+2
Сомневаюсь, что подобного рода костыли из сторонних сервисов и пользовательских скриптов можно было бы считать решением технических проблем Табуна, за которые Рандом станет кому-то что-то платить)))
Cypher
+1
Бэкап — сторонний ресурс, теперь единственный. Пинкивизор — был сторонним ресурсом, вместе со вторым бэкапом. Аватарки — сторонний ресурс. Наверное, надо было на стороннем Табуне полосочку вешать XD.
Wererat
+1
КСТАТИ... Сейчас никаких объединений программистов нет. Я пытаюсь топить за то, чтобы изменения вносили в сам Табун, однако кто без управления будет этим заниматься?

Надо создать условную конфу в Telegram/Discord/VK, собрать всех опытных программистов и неопытных и уже ими командовать. Глядить что-то и будет :)
Просто сейчас вообще никакого управления нет, поэтому никто не знает чо делать, и что вообще можно что-то сделать. Зачем нужны эти юзерскрипты, если можно изначально продукт доделать без использования юзерскриптов?
Ponywka
+3
Это бессмысленно, пока не будет договора с администрацией Табуна о том, что они будут принимать обновления.
NightPony
+2
эм… насколько помню посты про починку было заявление что предполагаемые чинители давно махнули хвостом, а так админ прям рад и готов принять, обогреть и прочее. Кто ни будь вообще связывался по этому вопросу? А то я больше вижу старую инфу что админы рубят на корню любые изменения, но это инфа чуть ли не с 19го уже не актуальна.
akela Изменён автором
+1
И да и нет. Написав вот этот пост мне написал Random . (Прошу заметить, написал не я, А ОН, т.е. он сам заинтересован в этом)
Вот какие ответы я от него получил (Я надеюсь эта инфа не секретная):
… Наличие такого руководства отличная вещь, однако даже если это сподвигнет броней на какие либо пуллреквесты… Они не смогут быть приняты пока Вагга не будет заменена, на доккер…

… Во первых — каждое обновление версии кода нужно делать в ручном режиме, что если ещё для «продакшена» приемлемо, но вот для тестирование dev версии — создаёт кучу проблем. Кроме того это создаёт проблемы для тестирования кода сторонними бронями из-за сложностей с запуском Вагги и не возможности выделить им стенд на сервере Табуна в автоматическом режиме… Можно наверное жить и с Ваггой но это создаёт проблемы...

Короче, всё возможно, просто одним надо собраться и написать скрипт docker-compose, другим собраться и сделать фиксы. Вот пока этих людей не будет, никаких продвижек разумеется тоже не будет. Копыта в руки и погнали
Ponywka
+2
И жить с Ваггой можно, и тестовый стенд с настроенным CI/CD уже реально существовал, и на этом стенде даже штатный тестировщик был…
andreymal
+2
Я знаю лишь то, что мне рассказывали в этом году. Собственно в этом году я на Табуне и начал сидеть. Неплохое место как оказалось :\
Ponywka
+1
А, так это не в прошивку табуна корм… Чтож. Ладно.
Sky_Dash
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Скрыто Показать