Загрузка...

General theme of MeloniuM scripts

Thread in Extentions created by MeloniuM May 17, 2023. (bumped Nov 26, 2024) 8464 views

  1. MeloniuM
    MeloniuM Topic starter May 17, 2023 make testers great again! 2916 Dec 23, 2021
    Все расширения написаны под Tampermonkey поэтому его необходимо установить, тык.
    Реализация предложения копирования хайда из темы: https://zelenka.guru/threads/5095343/
    [IMG]
    После нажатия хайд выделяется и содержимое попадает в буфер обмена​
    Установить LZTHideCopyButton

    [IMG]
    -Изменена иконка
    -Добавлена анимация копирования
    -Добавлено всплывающее уведомление при копировании
    (Всё как при копировании ВВ-кода "Код")​
    - Исправлено дублирование кнопки
    - Изменён @namespace у расширения, старое придётся удалить и поставить новое.​
    Изменил способ копирования. Некоторые bb-коды внутри хайда могут заменяться некорректно, но текст и картинки сохраняются. вложенные хайды заменяются на цитату(такая механика editor/to-bb-code)
    фикс дублирования кнопки у хайдов к которым нет доступа
    Временное решение https://zelenka.guru/threads/5353072/

    Позволяет отключить уведомления у конкретного диалога(группы)​
    Установить LZTConversationsMute
    Спасибо @zoto_ff за помощь.
    -при нажатии на иконку отключения уведомлений диалог не будет открываться (для ПК, с телефона откроется :catsqueez: )
    -небольшой рефакторинг
    -исправлено появление нескольких иконок у одного чата
    -отключение расширения на странице диалогов, чтобы не ломать работу чата (иногда не приходили новые сообщения)
    -ПОМЕНАЛ ЗНАЧЕНИЯ ИКОНОК МУТА МЕСТАМИ
    -смена namespace скрипта (обновление с 1.3 до 1.4 придется установить вручную)​
    Исправлен баг из-за которого чаты в муте и чаты без мута менялись местами после обновления страницы
    Исправлено обновление счетчика сообщений в меню в шапке сайта
    Рефакторинг кода
    Изменён интерфейс, добавлена синхронизация между вкладками.
    [IMG]
    Отключаем скрытие симпатий пользователя в темах (по дефолту показывает при наведении на сообщение)
    Установить LZTUserCounterOpacityDisable
    П.с. просто мне так удобнее, мб кому пригодится
    Расширение отображает скрытый блок подписок и подписчиков (в мобильной версии скрыт)
    При клике по блоку он раскрывается/закрывается.

    Установить LZTMobileFollowersShow
    Немного костыльно, т.к. не нашёл где в коде проверяется ресайз окна браузера.

    -Добавил поддержку других доменов форума
    -Анимация раскрытия/скрытия списка
    Если понравился чей-то уник, просто кликни чтобы скопировать.
    [IMG]

    Установить LZTCopyUniqButton
    Расширение частично реализует задуманное из предложения https://zelenka.guru/threads/5372145/
    [IMG]
    Установить LZTHideStickyThreads



    - Добавлено скрытие тем на лету во время загрузки темы
    - Добавлена галочка и анимация при скрытии/показе закрепленных тем как в менюшках сайта​
    - Исправлен баг, при переключении страниц закрепы не скрывались
    - Теперь разделе розыгрышей закрепы нельзя скрыть (чтобы не пропустить выгодные​
    [IMG]
    Увидел похожую тему, решил поделиться своим скриптом.
    Скрипт в цикле проверяет наличие новых уведомлений на форуме и отображает его в уведомлениях windows/android.​
    На ПК:
    [IMG]
    На телефоне:
    [IMG]
    [IMG]
    У каждого типа уведомления своя иконка (не все виды отснифал, можете предлагать ещё)
    [IMG]
    Нажатие на уведомление открывает его в браузере.
    Python

    [CENTER]import requests
    from time import sleep
    import json
    from bs4 import BeautifulSoup
    import sys
    import os

    VERSION = "1.1"

    print("""\u001b[32m
    %((
    (( ((((
    \u001b[0m\u001b[42mZelenify\u001b[0m\u001b[32m ( &(((& #(((((%
    #((& (((((((((((((
    ((% ((((##((((((((((((((&
    (# (((((%((((((((((((((((&
    &(((( (((((((((((((((((#
    ((((((((((((((((((# &((((%
    #(((((((((((((# &(((((((
    ((((((((( &(((((( #((((((((
    ((((( &( %(( &(((((((
    %(((((# ((((((
    (((((((((((((((

    \u001b[45m\u001b[34;1mby MeloniuM\u001b[0m""")
    is_android: bool = hasattr(sys, 'getandroidapilevel')
    PATH = os.path.dirname(os.path.realpath(__file__))
    WIN_ICON = os.path.join(PATH, "favicon.png")

    class LolzApi:
    def __init__(self, token: str, baseUrl="https://api.zelenka.guru/"):
    self.token = token
    self.baseUrl = baseUrl
    self.session = requests.session()
    self.session.headers = {'Authorization': f'Bearer {self.token}'}

    def get(self, url, params={}):
    return self.session.get(self.baseUrl + url, params=params)

    def post(self, url, data={}):
    return self.session.post(self.baseUrl + url, data=data)

    class Zelenify:
    def __init__(self, api, config, is_android):
    self.api = api
    self.config = config
    self.is_android = is_android

    icon=WIN_ICON
    url="https://zelenify.t.me"
    if is_android:
    icon = "notifications"
    url = "termux-open " + url

    self.send_notify(title='Уведомление', content='Скрипт запущен. Контакты: [URL]https://zelenify.t.me',[/URL] url=url, icon=icon)

    def send_notify(self, title: str, content: str, url: str, icon=WIN_ICON):
    if self.is_android:
    termux.Notification.notify(title=("Zelenify " + title), content=content, kwargs={"icon": icon, "action": url})
    #execute(["termux-notification", "-t", title, "-c", content, "-i", "Zelenify", "--action", "termux-open " + url, "--icon", icon])
    else:
    notify(title, content, on_click=url, icon=icon, app_id="Zelenify")

    def run(self):
    #global ****
    """
    todo:
    - добавить конфиг с выбором типа уведомлений которые отслеживать
    """
    last = []
    dots = 1
    connectError = False
    while True:
    response = None;
    try:
    response = api.get("notifications")
    if('error' in response.json()):
    if(response.json()['error'] == 'invalid_token'):
    print('> Неверный токен, измените его в config.json')
    else:
    print('[' + response.json()['error'] +']', response.json()['error_description'])
    break
    notifys = response.json()['notifications']
    except requests.exceptions.ConnectionError as e:
    print('[Error] Пропал интернет, ожидаю подключение' + '.'*dots + ' ', end="\r")
    dots += 1
    if dots >= 3:
    dots = 1
    connectError = True
    sleep(3)
    continue
    except Exception as e:
    if response != None:
    if response.status_code == 429:#флуд
    sleep(5)
    continue
    print('[Error]', e, end="\r")
    continue
    else:
    if connectError:
    print('\n[info] Соединение восстановлено ')
    connectError = False

    if response.status_code != 200:
    print('status', response)
    sleep(5)
    continue

    for notify in notifys:
    soup = BeautifulSoup(notify['notification_html'], 'html.parser')
    if notify['notification_is_unread'] == True and not notify['notification_id'] in last:
    if notify['creator_username'] != 'Реклама' or self.config['hide_ads'] != 'true':
    #log = notify['content_type'] + ":" + notify['content_action']
    #if not log in ****.keys():
    # ****[log] = soup.text.strip()
    url = soup.find("a", {"class": "PopupItemLink"})
    if url:
    url = url.get('href')
    else:
    url = False
    icon=WIN_ICON
    if is_android:
    icon = self.get_termux_icon(notify['content_type'], notify['content_action'])
    #print(icon)
    if url:
    url = "termux-open " + str(url)
    #print(url)
    self.send_notify(title="Уведомление", content=soup.text.strip(), url=url, icon=icon)
    last.append(notify['notification_id'])
    print('\u001b[35;1m>\u001b[32;1m ' + soup.text.strip() + '\u001b[0m')
    mark = True
    if notify['notification_is_unread'] == False and notify['notification_id'] in last:
    last.remove(notify['notification_id'])
    sleep(1)

    def get_termux_icon(self, content_type: str, content_action: str):
    alerts1 = {
    'thread': 'format_list_bulleted', #type: icon
    'profile_post_comment': 'chat'
    }
    if content_type in alerts1.keys():
    return alerts1[content_type]

    alerts2 = {
    'conversation': {#type
    'insert': 'insert_comment', #action: icon
    'join': 'person_add',
    'reply' : 'reply'
    },
    'post': {
    'insert': 'speaker_notes'
    },
    'post_comment': {
    'like': 'favorite'
    },
    'profile_post': {
    'like': 'thumb_up'
    },
    'user': {
    'post_copy': 'content_copy',
    'post_move': 'low_priority',
    'thread_merge': 'merge_type',
    'thread_move': 'wrap_text',
    'from_admin': 'verified_user'
    }
    }
    if content_type in alerts2.keys():
    if content_action in alerts2[content_type].keys():
    return alerts2[content_type][content_action]

    return 'notification'

    if __name__ == '__main__':
    if is_android:
    try:
    import termux
    except:
    print("Установите Termux:API - pip install termux")
    exit(1)
    else:
    try:
    from win11toast import notify
    except:
    print("Установите win11toast - pip install win11toast")
    exit(1)
    """
    1.Заходим на [URL]https://zelenka.guru/account/api[/URL] и создаём приложение
    2.Теперь перехожим на [URL]https://api.zelenka.guru/oauth/authorize?response_type=token&client_id=CLIENT_ID&scope=read+post+market[/URL] заменив CLIENT_ID на айди приложения из пункта [1]
    3.Выдаём приложению права все кроме маркета(они ему не нужны)
    4.Копируем токен из адресной строки со страницы на которую нас перенаправило и вставляем в код
    """
    if not os.path.exists(os.path.join(PATH, "config.json")):
    with open(os.path.join(PATH, 'config.json'), 'w') as configfile:
    data = {
    'token': input('Введите токен lolzapi: '),
    'hide_ads': 'true'
    }
    configfile.write(json.dumps(data))
    configfile.close()
    with open(os.path.join(PATH, 'config.json'), "r") as jsonfile:
    config = json.load(jsonfile)
    api = LolzApi(config['token'])

    if not os.path.exists(WIN_ICON):
    print('\u001b[33;1mНе найден favicon.png, качаю с форума\u001b[0m')
    favicon = open(WIN_ICON, 'wb')
    favicon.write(requests.get("https://zelenka.guru/styles/brand/download/logos/LolzTeam-Logo-Green.png", allow_redirects=True).content)
    favicon.close()
    print('\u001b[33;1mГотово!\u001b[0m')
    print('Жду новые уведомления на форуме')

    try:
    zel = Zelenify(api, config, is_android)
    zel.run()
    except KeyboardInterrupt:
    print(' '*50, end="\r")
    print('До новых встреч <3')

    [/CENTER]
    Для windows:
    ⁡pip install bs4 requests win11toast

    Для андроид нужен Termux и Termux:API (советую ставить версии с гитхаба)
    Code
    pip install termux-api
    pkg install bs4 requests termux-api
    Для андроид можно установить Termux:Boot, либо Termux:Widget для быстрого запуска скрипта.
    Первый для запуска при включении телефона, второй для запуска с виджета на рабочем столе.

    Для владельцев браслета Mi Band:
    Можно через приложение Notify сменить иконку у Termux:API на логотип форума.
    [IMG]
    Установить Notify
    Выбираем - Приложения
    [IMG]

    Добавляем в список приложение Termux:API нажав на плюсик и выбрав его в списке приложений.
    [IMG]
    А теперь изменим иконку приложения. Жмём шестерёнку:
    [IMG]
    Настроить значок уведомлений
    [IMG]
    Выбираем в списке то приложение, которым не будем пользоваться.
    Я например не использую Mi чат, его иконку заменю лого форума.
    [IMG]
    Выбрать значок с телефона. Предварительно скачайте логотип форума.
    [IMG]
    Теперь сменим иконку у приложения Termux:API выбрав в настройках изменённую в предыдущем шаге иконку.
    [IMG]
    В комментариях рад видеть предложения по улучшению скрипта.​
    Многие хотели эту возможность, а я вот Вам реализовал:cool_bun:
    Вы все знаете, что когда в любом разделе навести мышку на тему появится окошко предпросмотра.
    Все же хотели, чтобы этот предпросмотр работал ещё и в других местах?)
    Так вот, данное расширение это позволяет. А именно в: диалогах, постах и комментариях под темой и даже в профиле.
    [IMG]
    Установить LZTLinkPreview



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


    [IMG]

    Установить LZTCommentLink

    Добавлено отображение даты на мобильной версии сайта
    Убран отступ слева у даты
    - Добавлены ссылки к комментариям на странице профиля
    - Добавлено окно копирования ссылки, bb-кода, html-кода в темах. В профилях копирование ссылки сразу в буфер обмена.
    - Если при открытии профиля комментария нет на первой странице, он перенаправит на нужную страницу

    - Фикс недобавления ссылки к комментариям при листании страниц профиля
    Настройка подписки на пользователя прямо из карточки.
    Подписались на человека и вдруг начинается спам в уведомлениях о его темах?
    Хочется отключить уведомления, но не хочется отписываться от пользователя.
    Чтобы не лезть в https://zelenka.guru/account/following искать там и убирать галочки,
    а некоторые и не знают об этой ссылке и просто переподписываются чтобы увидеть заветное меню.

    Теперь всё просто: нажал на ник, в карточке нажал на шестерёнку, снял нужные галочки!



    Установить LZTManageNotifyButton

    Подправил css шестерёнки. Спасибо Extremum
    Как просил Копировать в предложениях.



    Установить LZTClicableUserThreadsUsername
    Переписал и дополнил расширение: https://zelenka.guru/threads/5145175/
    С разрешения автора конечно.

    Что умеет моя версия:
    - Автолайк, с учётом оставшихся лайков.
    - участие по кнопке Tab
    - пролистывание розыгрыша до кнопки участвовать.

    Установить LZT_ContestPro
    Ну, раз пошла такая пляска, внесу свой вклад в суету.

    [IMG]

    Установить LZTSuetaFavicon
    Включаем бесконечное листание ленты в мобильной версии форума.

    Всё.

    Установить LZTMobileInfinityScroll
    Реализация предложения: https://zelenka.guru/threads/5951452/
    Копирование ссылки на тему простым нажатием.
    Просто потому, что меня напрягает лонгтап в мобильной версии для вызова контекстного меню и копирования ссылки.
    Мне так удобней:nya:


    Установить LZTThreadsURLCopy
    [IMG] [IMG]
    Реализация предложения: https://zelenka.guru/threads/6060117/
    Количество участников беседы находящихся в данный момент в чате (может не совпадать с кол-вом участников из списка, при открытии чата с одного акк на нескольких устройствах). Обновляется каждые 10 сек и при тайпинге/отправке сообщений.
    Установить LZTConversOnlineMembers v1.1
    Уменьшит высоту блока уведомлений (StackAlerts) и позволит их листать.



    Установить LZTStackAlertsScrollable
    Кнопка "Пожаловаться" в карточке профиля. Из предложения https://zelenka.guru/threads/6577053/
    [IMG]

    Установить LZT_MemberCardReportButton
    [LZTlastPostPreview v1.0]
    Предпросмотр последнего поста в теме
    Установить
     
  2. MeloniuM
    MeloniuM Topic starter Nov 12, 2024 make testers great again! 2916 Dec 23, 2021
  3. a911
    a911 May 17, 2023 Продам рекламу в профиле lolz.live/threads/2604681 51,712 May 30, 2018
    красава, сам предложил, сам добавил :finger_up:
     
  4. MeloniuM
    MeloniuM Topic starter May 19, 2023 make testers great again! 2916 Dec 23, 2021
    [IMG]
    Отключаем скрытие симпатий пользователя в темах (по дефолту показывает при наведении на сообщение)
    Установить расширение
    Tampermonkey
    П.с. просто мне так удобнее, мб кому пригодится
     
  5. p0bed1tel
    p0bed1tel May 19, 2023 СТАТЬ МИЛЛИОНЕРОМ ЗА МЕСЯЦ - https://lolz.live/threads/8241684/ 12,679 Jun 3, 2021
    Ох нифига, не часто встретишь что чувак постарался и сделал скрипт)
    Молодец)
     
    1. MeloniuM Topic starter
    2. p0bed1tel
      MeloniuM, я сначала подумал, что ты сделал предложение, потом офигел что ты просто выкатил скрипт
  6. FFyP
    FFyP May 19, 2023 12,835 Oct 9, 2021
    Понял, не знаю зачем это нужно, но классно:pepethink2:
     
    1. el9in
      FFyP, всегда статически показывает симпатии и дату регистрации, полезно. [IMG]
  7. форум
    За смысл не понятно, но за старания :+rep:
     
    1. MeloniuM Topic starter
      форум, я просто хочу сразу видеть сколько у чела симп и дату регистрации без лишних наведений мышью
  8. LonelyGroom
    LonelyGroom May 19, 2023 Info / Links / Donate: T.ME/LG_LINK 2108 Sep 7, 2018
    О, автор гений! Легкий скрипт, но такой нужный :cutedance:
     
    1. MeloniuM Topic starter
    2. LonelyGroom
      MeloniuM, действительно годно, респект.
  9. a911
    a911 May 19, 2023 Продам рекламу в профиле lolz.live/threads/2604681 51,712 May 30, 2018
    У меня старый дизайн стоит, там всё видно
     
    1. MeloniuM Topic starter
      a911, да, этим мне старый дизайн нравился
    2. a911
      MeloniuM, мне новый дизайн до сих пор не нравится, хоть и функций у него больше
    3. MeloniuM Topic starter
      a911, можно допилить)
  10. NK_TRIPLLE
    Удобно без лишних действий, спасибо за скрипт.
     
  11. workingkilla
    Покупаете уник, и скрываете
    [IMG]
     
    1. MeloniuM Topic starter
      workingkilla, тут не об этом. Помимо симпатий так скрывается статус. С расширением он будет виден статически
  12. Neptvne
    Neptvne May 19, 2023 Данный пользователь не в зоне действия сети 611 Jun 19, 2019
    там можно же просто олд тему включить или я чего то не понял...
     
    1. MeloniuM Topic starter
      Neptvne, не все пользуются старой темой
  13. MeloniuM
    MeloniuM Topic starter May 19, 2023 make testers great again! 2916 Dec 23, 2021
    НЕАКТУАЛЬНО. На форуме добавили эту кнопку.

    Вчера случайно нашёл это фичу. На форуме разрешили создание бесед, но кнопку не добавили, расширение исправит это дело:finger_up:
    [IMG]

    [IMG][IMG]
     
  14. 737363728119
    737363728119 May 19, 2023 4192 Jul 13, 2021
    Ура, форум превратился в соц сеть
     
    1. View previous comments (1)
    2. 737363728119
      MALWARE, утечка грядущей обновы?
  15. Alex_1699
    Alex_1699 May 19, 2023 Скупаю майн lolz.live/threads/3052169/ 8172 Sep 15, 2019
    VLolze
     
  16. SNUS_2008
    А можна тут как в дс звонить
     
  17. a911
    a911 May 19, 2023 Продам рекламу в профиле lolz.live/threads/2604681 51,712 May 30, 2018
    убирали эту беседу из за того что багов было много, не думаю что их сейчас исправили
     
  18. WTF
    WTF May 19, 2023 Статус 7074 Jun 6, 2021
    1. MeloniuM Topic starter
      WTF, :animeyes2: верно, на этом оно и основано
  19. Siski_piski
    Siski_piski May 19, 2023 ПИЗДАТЫЙ ДИЗАЙН - https://lolz.live/threads/4141368/ :muscle: 14,566 Oct 25, 2021
    в честь этого надо выпить пива
     
    1. MeloniuM Topic starter
    2. netrunnerqq
  20. MeloniuM
    MeloniuM Topic starter May 20, 2023 make testers great again! 2916 Dec 23, 2021
    Временное решение https://zelenka.guru/threads/5353072/

    Позволяет отключить уведомления у конкретного диалога(группы)​

    [IMG]

    Спасибо @zoto_ff за помощь.
    -при нажатии на иконку отключения уведомлений диалог не будет открываться (для ПК, с телефона откроется :catsqueez: )
    -небольшой рефакторинг
    -исправлено появление нескольких иконок у одного чата
    -отключение расширения на странице диалогов, чтобы не ломать работу чата (иногда не приходили новые сообщения)
    -ПОМЕНАЛ ЗНАЧЕНИЯ ИКОНОК МУТА МЕСТАМИ
    -смена namespace скрипта (обновление с 1.3 до 1.4 придется установить вручную)

    Исправлен баг из-за которого чаты в муте и чаты без мута менялись местами после обновления страницы​
    Исправлено обновление счетчика сообщений в меню в шапке сайта
    Рефакторинг кода
    Изменён интерфейс, добавлена синхронизация между вкладками.
     
  21. WTF
    WTF May 20, 2023 Статус 7074 Jun 6, 2021
    MeloniuM Выручаешь. Полезные скрипты делаешь. :+rep:
     
Loading...
Top