TikTok Live Reader
Тази добавка може да се свързва с лайфове в TikTok и да извлича информация от тях в реално време. Използва библиотеката TikTokLive на езика Python, за да осъществява достъп до конкретен live stream. Поддържат се следните функции:
- Записване на извлечените данни в текстови файлове. Те се създават в Папка Документи\TikTok live.
- Запазва се информация за следните събития: коментари, нови последователи, гифтове, харесвания, споделяния, посетители, заявки за присъединяване към лайфа.
- Създава се файл със събития, в който могат да се записват няколко типа данни наведнъж.
- Предвидена е възможност за възпроизвеждане на звуци за избраните в настройките на добавката събития например при нов коментар, гифт и така нататък.
- Извличат се основни статистики за лайфа в отделен файл. В него се показва текущият брой зрители, посетителите, преминали през лайфа от началото на сесията, общият брой харесвания до момента, колко нови последователи е натрупал домакинът, събрани диаманти от началото на сесията.
- Създава се файл с топ класация на гифтърите. Те се подреждат от най-активния към този с най-малък принос. Определя се по брой изпратени диаманти към домакина.
- Налична е и класация за потребителите, които са харесали лайфа. Подреждат се на същия принцип като при гифтовете.
Благодарение на TikTok Live Reader всеки домакин или зрител може да получи необходимата му информация, без да използва външни инструменти. Събраните данни за лайфа се записват в текстови файлове, които се създават в папка Документи\Tiktok live. Те могат да бъдат преглеждани по-късно. Добавката извлича в отделни файлове следните типове данни:
- comments.txt - В този файл се добавят всички коментари, засечени по време на лайфа. Те са придружени с дата и час.
- followers.txt - Регистрират се потребителите, които са последвали домакина по време на текущата сесия на добавката.
- gifts.txt - Тук се записват всички подаръци, получени от домакина на лайфа. Докладва се кой потребител колко подаръка от даден вид е изпратил, заедно с датата и часа.
- likes.txt - В този файл се показва кой, кога и по колко пъти е харесал лайфа.
- requests.txt - Регистрира всички заявки за присъединяване, отправени към домакина.
- shares.txt - Записва потребителите, които са споделили лайфа заедно с дата и час.
- stats.txt - Показва текущият брой зрители, колко нови последователи е събрал домакинът, всички харесвания на лайфа, колко посетители са минали по време на текущата сесия, общият брой събрани диаманти.
- top gifts.txt - Съдържа класация на потребителите, изпратили подаръци в лайфа, подредени от най-активния към този с най-малко гифтове.
- top likes.txt - Същата логика, само че за харесванията.
- visitors.txt - В този файл се записват всички посетители, минали през лайфа по време на текущата сесия на добавката, заедно с дата и час.
- events.txt - При навигация с клавиатурата този файл е разположен между коментарите и последователите. В него могат да се записват различни типове събития, определени в настройките на добавката. Идеята е лесно да се проследяват няколко типа данни на едно място - коментари, последователи, гифтове, харесвания, заявки за присъединяване, споделяния и посетители.
Настройки
TikTok Live Reader има собствен прозорец с настройки. Той се отваря с клавишната комбинация NVDA+Shift+Control+L. В него има 3 раздела:
Общи
Този раздел съдържа следните настройки:
- Потребителско име - Тук се въвежда потребителското име на домакин на лайф без знак кльомба преди него.
- Изчистване на файловете при стартиране - Изтрива съдържанието на текстовите файлове при включване на добавката.
- Опростяване на потребителските имена - Тази опция има за цел да изчисти всичко излишно от имената на потребителите, които взаимодействат с лайфа. Нейната необходимост беше породена от това, че голяма част от потребителите в TikTok слагат в своите имена емоджита и всякакви други Unicode символи, които пречат при прочитане на името с екранен четец. Когато опцията е включена, от имената на потребителите се изчиства всичко излишно и в тях остават само букви, цифри и препинателни знаци.
- Брой опити за свързване - Определя колко пъти добавката да опитва да се свърже с лайфа на зададения потребител.
Събития
Този раздел съдържа различни отметки. Чрез тях се определя кои данни да се записват във файла events.txt. За всяко събитие има отметка. Това могат да са коментари, последователи, гифтове, харесвания, заявки за присъединяване, споделяния и посетители. Налични са и следните допълнителни настройки:
- Възпроизвеждане на звуци за избраните събития - При регистриране на някое от изброените, се възпроизвежда специфичен кратък звук например за нов коментар, последовател, гифт, харесване и така нататък. Функцията може да бъде включвана и изключвана с клавишната комбинация NVDA+Shift+Control+P.
- Сила на звука - Този плъзгач определя колко да са силни звуците.
- Научаване на звуците - Възпроизвежда тяхно описание, за да може потребителят да ги чуе предварително.
Автоматично изговаряне
Този раздел определя кои данни да се съобщават, когато функцията за автоматично изговаряне е включена. Тя се активира с клавишната комбинация NVDA+Shift+Control+S или чрез опцията Автоматично изговаряне на избраните събития. Когато тя е включена, само тогава се показват отметките за различните събития след нея. При поява на някое от тях, то ще бъде прочетено автоматично например "Нов последовател: Името на потребителя". Или "Име на потребител сподели лайфа".
Звуците за събития и съобщенията към тях се възпроизвеждат с пауза от една секунда помежду им. Съхраняват се във временни файлове, за да могат да бъдат докладвани по поредност при натоварени лайфове. Функцията за възпроизвеждане на звуци и тази за автоматично изговаряне са независими една от друга.
Как се използва добавката
Когато са направени необходимите настройки, натиснете NVDA+Shift+Control+T. Клиентът на TikTok Live Reader ще се опита да се свърже с лайфа на зададения в настройките потребител. Информацията за успешно или неуспешно свързване се изговаря автоматично. Когато добавката докладва, че сте свързани, можете да използвате различни клавишни комбинации. Ето кои са те:
- Control+Shift+Стрелка надясно - следващ файл например Коментари, Събития, Последователи, Гифтове и така нататък.
- Control+Shift+Стрелка наляво - Предишен файл.
- Control+Shift+Стрелка надолу - Следващ елемент в текущия файл например коментар, харесване, споделяне.
- Control+Shift+Стрелка нагоре - Предишен елемент в текущия файл.
- Control+Shift+Home - Премества фокуса върху първия елемент от текущия файл например първият нов последовател.
- Control+Shift+End - Придвижване до последния елемент в текущия файл.
- NVDA+Shift+Control+V - Докладва колко зрители има в момента.
- Nvda+Shift+Control+S - Включва и изключва функцията за автоматично изговаряне на избраните в настройките събития.
- NVDA+Shift+Control+P - Включва и изключва звуците.
- NVDA+Shift+Control+R - Премахва съдържанието на текстовите файлове.
Натиснете NVDA+Shift+Control+T, за да прекратите текущата сесия на добавката. Можете да разгледате всички събрани данни във файловете, генерирани в папка Документи\TikTok live.
Някои особености
- При отваряне на настройките на добавката, изговарянето на събития и звуците временно се деактивират, ако са били включени. Записването на данни продължава на заден фон.
- Ако има активна сесия и потребителското име в настройките е променено, след тяхното запазване добавката ще се опита да се свърже с новия потребител.
- Когато автоматичното изчистване на файловете при стартиране е изключено, в тях ще са останали данни от последния лайф. Ако искате да ги изчистите в началото на текущата сесия, натиснете NVDA+Shift+Control+R.
- Също така когато файловете не се изтриват автоматично, при рестарт на добавката тя се опитва да позиционира потребителя там, където последно е бил например върху ред 45 от файла с коментари.
Ограничения
- Исках да добавя функция за показване на всички текущи зрители в лайфа. Но библиотеката TikTokLive не може да докладва напускане на даден потребител.
- Също така исках да има класация на зрителите по време, прекарано в лайфа. Но поради липса на информация за това кога даден потребител е излязъл, не може да се създаде такава функционалност.
- При превода на добавката на български се установи, че подаръците в TikTok са твърде много и социалната мрежа ги променя постоянно. Поддръжката на такъв превод не е рентабилна, затова имената на подаръците ще се съобщават на английски.
- Когато се регистрират заявки за присъединяване, ако потребителят по някакъв начин е взаимодействал с лайфа, неговото име се вижда във файла requests.txt. Но ако не е проявил активност, най-малкото да е бил отразен като посетител, заявката ще бъде игнорирана. Причината за това поведение е, че TikTok не извежда публично имената на потребителите, които искат да се присъединят към лайф и трябва те да се извличат от вече събраните по време на сесията хора.
Списък с промените
Версия 1.5
- Стабилизирана е логиката за зареждане и изключване на добавката.
- Вече се използва шаблонът NVDA addon template, което ще улесни автоматизацията при създаване на нови версии, преводи на интерфейса и така нататък.
- Стабилизирана е логиката за записване на харесвания, споделяния и последвания.
- Стойността на опцията за автоматично изговаряне на събития вече се взема предвид от добавката. Когато автоматичното изговаряне е включено, се изчаква 10 секунди след успешно свързване с потребител и тогава започва съобщаването на събития.
- Опцията вече е добавена и в съответния раздел с име Автоматично изговаряне на избраните събития. Само когато е включена, тогава се показват останалите отметки - Коментари, Последователи, Гифтове и така нататък.
- Коригиран бъг, при който в някои случаи се възпроизвеждаха звуци и се изговаряха събития веднага след рестарт на TikTok Live Reader.
- Добавена е клавишна комбинация NVDA+Shift+Control+P за включване и изключване на звуците. Тя е в сила, когато има активна сесия и се записват събития.
- Добавени са клавиши за бърз достъп (access keys) за различните настройки, когато прозорецът е отворен. Това са клавишни комбинации с Alt и буквите.
- Изчистена е логиката за плъзгача Audio volume. Той вече се нарича само Volume на английски, на български етикетът си остава Сила на звука.
- Преводът на опцията Clean usernames е променен на Опростяване на потребителските имена.
- Настройките вече се запаметяват динамично. При отваряне на техния прозорец, добавката продължава да записва събития на заден фон, но звуците и автоматичното изговаряне се изключват временно. След затварянето на настройките, тези функции отново работят както се очаква.
- Ако потребителското име в настройките е променено, след тяхното затваряне добавката прави опит да се свърже с новия потребител.
- Добавена е възможност за регистриране на заявки за присъединяване към лайфа. Те се записват във файла requests.txt, който се намира при останалите текстови файлове в папка Документи\TikTok live.
- Вече има опция Заявки в настройките за събития и автоматично изговаряне. Също така е добавен и нов звуков сигнал, който се възпроизвежда ако докладването на това събитие чрез звук е включено.
- Ако се въведе потребителско име, по-малко от два символа или то съдържа само интервали, добавката изговаря съобщение за грешка. Полето може да приема само букви на латиница, числа и препинателни знаци.
Благодарности
- Благодаря на MuhammadGagah, който много ми помогна с оптимизирането на логиката за включване и изключване на добавката и за нейното зареждане в изолирана среда. Също така той добави индонезийски превод на интерфейса и документацията.
- Благодарности към Бена Къркова за добрите идеи, които ми е давала по време на разработката на този проект и за огромната подкрепа и вяра в него.
Финални уточнения
Тази добавка е разработена с помощта на езиковите модели ChatGPT, Google Gemini и Claude OPUS 4.6 Thinking. Разпространява се под лиценз GNU General Public License 2.0.