Загрузка...

Тема с объединенными дополнениями

Тема в разделе Дополнения создана пользователем vuchaev2015 24 апр 2022. (поднята 18 ноя 2023) 26 267 просмотров

Загрузка...
  1. vuchaev2015
    vuchaev2015 Автор темы 24 апр 2022 все ближе и ближе... 23 654 15 фев 2018
    После установки скрипта, скрипт по мере того как вы прогружаете розыгрыши будет сортировать их по удобным образом по меньшему и времени и большей сумме. Чтобы вы всегда успевали принимать участие в крутых розыгрышах :smart2011:

    Без скрипта:
    [IMG]

    С скриптом:
    [IMG]



    Переходим по ссылке: Contest Sorter Lolzteam (greasyfork.org) и нажимаем "Установить этот скрипт".

    [IMG]
    Скрипт добавляет блок с выводом курса криптовалют. На данный момент есть USD, EUR, CNY. Вы можете самостоятельно добавить валюту (которая разумеется есть в парсере), так и попросить меня, я помогу вам с этим.
    [IMG]Планируется добавления новых валют, а так же криптовалют (которые популярны на данный момент. Пишите в тему - я их добавлю).
    Так же скрипт автоматически берет курс валют под вашу. Которая стоит у вас на маркете.

    Допустим вы выбрали гривны
    [IMG]

    Скрипт автоматически все сделал под валюту маркета
    [IMG]

    Сделал по желанию следующих пользователей:
    [IMG]

    [IMG]
    [IMG]
    Ссылка на TamperMonkey - https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=ru
    Ссылка на скрипт - https://greasyfork.org/ru/scripts/471607-lztcurrencyapi/

    Инструкция по добавлению своей валюты​

    Находим данные строчки
    [IMG]
    Добавляем строчку допустим const btc_url = `${api_url}/BTC/${currency}.json`;
    то есть в таком формате apiссылка/валютакоторойхотитеузнатькурс/вашавалюта

    Затем добавляем еще несколько строчек, но уже здесь:
    [IMG]

    Добавляем const btc_value = await getCurrencyValue(btc_url); и еще одну { name: 'BTC', value: btc_value} и не забываем ставить запятые.

    Должно получиться так:
    [IMG]

    [IMG]
    [IMG]
    Скрипт отслеживает элемент с вводом текста на форуме и если текст присутствует у вас появляется алерт с предупреждением при попытке куда-то перейти.
    Я использовал observer для отслеживания элемента и переменную lastState для того чтобы записывать туда состояние. Далее если состояние lastState === filled при переходе на какую-либо страницу будет появляться предупреждение.
    [IMG]
    [IMG]
    И так, если в поле присутствует какой-либо текст, теперь при случайном миссклике будет висеть предупреждение которое я показал выше​
    В профиле
    В темах
    В личных сообщения
    При создании темы
    За оформление спасибо - llimonix
    [IMG]

    Для работы скрипта требуется TamperMonkey - https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=ru
    Ссылка на установку - https://greasyfork.org/ru/scripts/471528-lztweatherapi
    В случае если в скрипте будет не работать API ключ - https://www.weatherapi.com/my/ самому можно получить

    [IMG]
    goldf1nch можешь не благодарить меня :ok_cool:

    Теперь вам не нужно заходить на какие-то сторонние сайты чтобы узнать погоду, можете делать это прямо с форума!

    Лично мне она не мешает никак (наоборот считаю, что обновление удобное), но видимо кому-то не понравилось новое обновление. А мне не впадлу сделать пару строк кода
    Скрипт - https://greasyfork.org/ru/scripts/472010-tpostlistcontrolsremover
    [IMG]
    [IMG]

    Вместо того чтобы посидеть на форуме потратил время на это, для работяг :2011_like: [IMG]

    Что делает данный скрипт? Ну очевидно по названию темы - добавляет динамическое время в темах розыгрышей. Сейчас же используется статическое и не изменяется никаким образом. То есть остается в таком состоянии до обновления страницы:
    [IMG]

    После того как время до завершения становится 0 секунд - скрипт будет дожидаться ответа от root и как только root ответит он автоматически сделает информацию такой:
    [IMG]
    А так же закроет поле для ответов:
    [IMG]

    Ссылка на установку скрипта - https://greasyfork.org/ru/scripts/472277-lztdynamictimecontest
    Ссылка на установку TamperMonkey - https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=ru
    Представляю Вам стиль для форума Lolzteam в светло-голубой расцветке.
    [IMG]
    [IMG]
    Стиль был адаптирован под мои вкусы. Никого не заставляю устанавливать или использовать (все по вашему желанию) :da:

    Шаги установки стиля:
    1. Устанавливаем расширение Stylus

    2. Переходим по ссылке https://userstyles.world/style/4331/lzt-light-blue





    3. Нажимаем на кнопку [IMG] и кликаем [IMG]
    4. Если вы выполнили все шаги из статьи правильно, то у вас появится такая надпись: [IMG]
    5. Наслаждаемся :finger_up:
    20220424.2.33
    1. Стиль выложен в открытый доступ
    20220424.13.44
    1. Изменен цвет текста в тегах на белый, для более хорошей читабельности
    20220424.20.41
    1. Изменено расположение тегов
    2. Теги сделаны более квадратными
    Заметил много людей выложили уже похожие скрипты, но у всех происходят клики на кнопку для продолжения. Мой скрипт полностью убирает proxy.php из ссылок и заменяет на обычные.



    TamperMonkey - https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=ru
    Ссылка на скрипт - https://greasyfork.org/ru/scripts/469178-proxyphpremover
    Написан быстро, много гавнокода, но работает.

    Зеленый текст - не нарушает правила форума
    Красный текст - нарушает правила форума
    Оранжевый текст - возможно нарушает правила форума

    [IMG]
    [IMG]
    [IMG]
    [IMG]

    Python
    from flask import Flask, request, jsonify
    import asyncio
    from EdgeGPT.EdgeGPT import Chatbot, ConversationStyle
    from flask_cors import CORS

    app = Flask(__name__)
    CORS(app)

    @app.route('/', methods=['POST'])
    def analyze_message():
    data = request.get_json()
    title = data['title']
    content = data['content']
    message = data['message']
    section = data['section']

    prompt = f'Заголовок темы: {title}\n\nТвоя задача определять бесполезные сообщения, флуд, спам, не имеющие смысла с заголовком, содержимым, не дающие цельный ответ, никак не связаны с содержимым (или с заголовком), да и в принципе с разделом, то есть полностью бесполезное сообщение например "скачай видеокарту", видеокарту нельзя скачать и это бред:\n\nЕсли в содержимом мало текста и присутствует "в шапке", "в кепке" и похожие варианты - значит вопрос задан в заголовке. Если нарушает что-то из перечисленного "выводи ответ в json формате: "answer: no/yes/possibly" Yes или No или possibly (если не уверен нарушает или нет) в зависимости нарушает или нет," ничего больше\nЕсли не нарушает: No\nНе уверен/возможно - possibly\n"на основе содержимого, заголовка и сообщения твоя задача сделать анализ, проверить, что ответ является верным и не бесполезным и дать ответ точный, если не уверен - возвращай possibly!"\nТолько JSON формат и ничего больше отправлять не надо. Если сообщение содержит только "Скрытый контент для ..." - пропустить сообщение и вернуть skipped\n\nСодержимое темы: {content}\nРаздел темы: {section}\nСообщение для анализа: {message}'

    loop = asyncio.new_event_loop()
    asyncio.set_event_loop(loop)
    result = loop.run_until_complete(run_chatbot(prompt))
    loop.close()

    return jsonify(result)

    async def run_chatbot(prompt):
    bot = await Chatbot.create()
    response = await bot.ask(prompt=prompt, conversation_style=ConversationStyle.precise, simplify_response=True)
    await bot.close()
    return response['adaptive_text']

    if __name__ == '__main__':
    app.run(host="0.0.0.0", port=5000)

    Скачиваем https://github.com/acheong08/EdgeGPT и перекидываем EdgeGPT в папку с скриптом





    [IMG]

    JS
    // ==UserScript==
    // @name FloodSearch
    // @namespace [URL]http://tampermonkey.net/[/URL]
    // @version 0.1
    // @description try to take over the world!
    // @author vuchaev2015
    // @match [URL]https://zelenka.guru/*[/URL]
    // @icon [URL]https://www.google.com/s2/favicons?sz=64&domain=zelenka.guru[/URL]
    // @grant none
    // ==/UserScript==

    async function getContent() {
    const url = window.location.href;
    const regex = /https:\/\/zelenka\.guru\/threads\/(\d+)(\/page-\d+)?/;
    const match = url.match(regex);

    if (match && match[2]) {
    const titleUrl = `https://zelenka.guru/threads/${match[1]}/`;
    const response = await fetch(titleUrl);
    const text = await response.text();
    const parser = new DOMParser();
    const doc = parser.parseFromString(text, 'text/html');
    const firstPostElement = doc.querySelector('[id^="post-"] div.messageInfo > div.messageContent > article > blockquote');
    const content = firstPostElement ? firstPostElement.innerText : '';
    return content;
    } else {
    const firstPostElement = document.querySelector('[id^="post-"] div.messageInfo > div.messageContent > article > blockquote');
    const content = firstPostElement ? firstPostElement.innerText : '';
    return content;
    }
    }

    async function analyze_message(title, section, message, content, postId) {
    const url = 'https://456a-191-101-157-238.ngrok-free.app';
    const data = { title, content, message, section };

    try {
    const response = await fetch(url, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify(data)
    });

    if (response.status === 500) {
    return analyze_message(title, section, message, content, postId);
    }

    const json = await response.text();
    const result = json.match(/(no|yes|possibly|skipped)/);

    if (result) {
    return result[0];
    } else {
    return analyze_message(title, section, message, content, postId);
    }
    } catch (error) {
    //return analyze_message(title, section, message, content, postId);
    }
    }

    async function processPost(post, title, content, section) {
    if (post.classList.contains('comment')) return;

    const postId = post.id.replace('post-', '');
    const messageElement = post.querySelector('div.messageInfo > div.messageContent > article > blockquote');
    const message = messageElement.innerText;
    if (message === content) return;

    const authorElement = post.querySelector('span.item.as--class.author');
    if (authorElement) return;

    const statusElement = document.querySelector(`#post-${postId} > div.messageInfo > div.messageContent > div > div.privateControls > a`);

    return analyze_message(title, section, message, content, postId)
    .then(result => {
    const statusColors = { no: 'green', yes: 'red', possibly: 'orange' };
    statusElement.style.color = statusColors[result] || '';
    });
    }


    async function observeNewPosts(title, section) {
    let previousPosts = Array.from(document.querySelectorAll('[id^="post-"]'));

    const checkForNewPosts = async () => {
    const currentPosts = Array.from(document.querySelectorAll('[id^="post-"]'));

    const newPosts = currentPosts.filter(
    (post) => !previousPosts.some((prevPost) => prevPost.id === post.id)
    );

    if (newPosts.length > 0) {
    const analyzePromises = newPosts.map((post) =>
    processPost(post, title, getContent(), section)
    );
    await Promise.all(analyzePromises);
    }

    previousPosts = currentPosts;
    setTimeout(checkForNewPosts, 3000); // Check for new posts every 3000 milliseconds (3 seconds)
    };

    checkForNewPosts();
    }

    (async () => {
    const title = document.querySelector('#content > div > div > div.titleBar > h1').innerText;
    const section = document.querySelector('#pageDescription > a:nth-child(1)').innerText;
    const content = await getContent();

    const posts = Array.from(document.querySelectorAll('[id^="post-"]'));

    const analyzePromises = posts.map(post => processPost(post, title, content, section));
    await Promise.all(analyzePromises);

    await observeNewPosts(title, section);
    })();

    С запросами на localhost у меня не получилось и пришлось подымать через ngrok :peka:





    Как скачали ngrok запускаем скрипт Python





    [IMG] Открываем cmd где находится скачанный ngrok.exe
    пишем: ngrok http 5000 и меняем ссылку в скрипте TamperMonkey на свою
    [IMG]
    [IMG]
    Все. Скрипт должен работать. В некоторых регионах Bing может быть недоступен и не работать, поэтому либо устанавливаете куки свои, либо *** включаете в регионе в котором Bing работает без авторизации

    добавляете строчку cookies = json.loads(open("./cookies.json", encoding="utf-8").read()) # might omit cookies option
    bot = await Chatbot.create()
    меняете на
    bot = await Chatbot.create(cookies=cookies)

    создаете файл cookies.json в папке со скриптом и с бинг через EditThisCookie экспортируете и загружаете их в файл

    Готово, скрипт работает используя GPT-4 от Bing, анализирует заголовок, содержимое темы и сообщение пользователя и пытается вывести результат за счет этого. Могут быть ложные срабатывания (а может вообще работать через попу, нейросети не идеальны), не забываем, что скрипт просто пытается облегчить нашу работу, а не полностью отнимает ее. Кидайте репорты с умом:cool_bun:





    Зачем я его написал? Не знаю сам, просто надеюсь, что он сможет помочь новичкам в поиске бесполезных сообщений и все. :peka:
    Для работы скрипта требуется расширение в браузере TamperMonkey - https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=ru
    Ссылка на установку скрипта - https://greasyfork.org/ru/scripts/470912-lolzteamautorefresh

    Демонстрация работы:
    [IMG]

    Раз в 5 секунд скрипт автоматически обновляет темы в разделе где вы сидите в данный момент.
    [IMG] время изменить на данный момент можно только в коде скрипта, указывать в ms (5000ms - 5 секунд)

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

    Так же автоматически удаляется кнопка для обновления (если скрипт обновляет сам - значит и кнопка не нужна)
    [IMG]

    Обновляются не только темы, но и статус прогруженных тем -
    [IMG][IMG]последний написавший, время создания, количество симпатий

    Работает немного не так как надо если прогружены дополнительные темы ниже.
    Установить можно здесь. Все просто, при переходах теперь не будет отображаться лоадинг бар
    https://greasyfork.org/ru/scripts/479256-hideloadingbar
    [IMG]

    Было:
    [IMG]
    Стало:
    [IMG]

    Как и просили, собственного говоря. Пару строчек кода :ok_lol:
    [IMG]
    [IMG]
    Для тех кто не хочет удалять полностью данный блок сделал отдельный скрипт - просто перемещение блока.
    [IMG]

    Сейчас кнопка и количество ответов находятся сверху, над первым сообщением автора темы (вроде выглядит лучше, чем изначально :ok_lol:)





    Скрипт - https://greasyfork.org/ru/scripts/472013-postlistcontrolstransfer
     
    24 апр 2022 Изменено
    1. WTF
    2. premium
      WTF, а они там не работают?
      17 янв 2025 Изменено
  2. Характерный
    Красиво
    --- Сообщение объединено с предыдущим 24 апр 2022
    Сделай адаптацию под каждый уник
     
  3. CryptoBot
    CryptoBot 24 апр 2022 Заблокирован(а)
    го фикс
    [IMG]
     
    1. vuchaev2015 Автор темы
      CryptoBot, спасибо, я особо не старался :finger_up:
  4. cifzy
    cifzy 24 апр 2022 я прощу тебе сейчас, но не прощу себе потом. 14 721 11 авг 2018
     
    1. vuchaev2015 Автор темы
  5. avalanche
    Ашалеть, чел под свой уник целый стиль сделал) :anime_thumbs_up:
     
    24 апр 2022 Изменено
    1. vuchaev2015 Автор темы
      @geodb, ну как сказать сделал... адаптировал :da:
  6. lean
    lean 24 апр 2022 :love2: TRX&ENERGY(FROM 100₽/66.000) - lzt.lol/trx-6 :love2: 36 559 6 сен 2021
    Для полной картины у каждого должен быть такой уник:finger_up:
     
    1. vuchaev2015 Автор темы
      lean, желаем каждому в доме такого гостя
  7. Девочка
    Девочка 24 апр 2022 Заблокирован(а)
    в глаза бьет и текст плохо читаем
    [IMG]
     
    1. vuchaev2015 Автор темы
      Девочка, да, но все остальные цвета гавняно смотрятся если не белый выбирать :finger_up:
  8. MisterProfit
    MisterProfit 24 апр 2022 24 002 3 мар 2020
    Пиздато, чисто под анонимуса в серой толстовке
     
  9. Target
    Target 24 апр 2022 611 5 ноя 2019
    Ляяяя балдежный стиль:animezerotwo:
     
  10. poliph
    [IMG] [IMG] [IMG] красота
     
    1. даня
      poliph, ещё и аниме на фоне, просто мечта
  11. S666wop
    S666wop 24 апр 2022 Да, нас хотят видеть, мы лучшие в своей нише 1566 12 сен 2020
    Как по мне темка не очень, сильно засвечивает кнопки, да и серый с зеленым смотрится куда уместнее для такого форума, но для любителей голубого пойдет):smile:
     
    1. vuchaev2015 Автор темы
      S666wop, да, согласен, стиль на любителя. Текст сделать виднее сложновато потому что другие цвета плохо сочетаются
  12. sadness112
    sadness112 25 апр 2022 СТАТЬ МИЛЛИОНЕРОМ ЗА МЕСЯЦ - https://lolz.live/threads/8241684/ 695 27 дек 2020
    Вообще текст не видно, а так прикольно)
    И да, ониме сосать!
     
    1. vuchaev2015 Автор темы
      sadness112, постараюсь найти какое-то решение с текстос
  13. Клубняк
    для голубых самое то, ну и ещё зимой такое ставить можно
     
  14. РозоваяПантера
    Сделай ещё розовый
     
    1. Teto
  15. lilies_inactive3843855
    lilies_inactive3843855 29 апр 2022 Hustle Tales 249 19 янв 2021
    :finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up::finger_up:увожение вам
     
  16. zwhxejdnctldsdwm
    [IMG] нормальные кнопки сделай пж
     
    1. zwhxejdnctldsdwm
      @форум, темнее текст там черный ваще пох хуйня
  17. devor
    devor 5 май 2022 <— видишь зеленый кружок? 4604 26 сен 2021
    Оууу майй. Кайффф
     
  18. vuchaev2015
    vuchaev2015 Автор темы 16 дек 2022 все ближе и ближе... 23 654 15 фев 2018
    После установки скрипта, скрипт по мере того как вы прогружаете розыгрыши будет сортировать их по удобным образом по меньшему и времени и большей сумме. Чтобы вы всегда успевали принимать участие в крутых розыгрышах :smart2011:

    Без скрипта:
    [IMG]

    С скриптом:
    [IMG]




    Переходим по ссылке: Contest Sorter Lolzteam (greasyfork.org) и нажимаем "Установить этот скрипт".

    Другие мои темы:
    Lolzteam Contest Helper - участвовать станет легче
    Скрипт для получения общей суммы розыгрышей
     
    16 дек 2022 Изменено
  19. SUFA
    SUFA 16 дек 2022 КНОПКА БАБЛО$ - https://lolz.live/threads/8464084/ 12 457 27 окт 2022
    Не нарушение?)
     
    1. vuchaev2015 Автор темы
      SUFA, а что оно нарушает?) просто фильтрует
  20. ahtung
    ahtung 16 дек 2022 мне похуй я умпалумп 499 29 июн 2020
    хуйня не работает, страница перестает грузить
     
    1. vuchaev2015 Автор темы
      ahtung, должно грузить, у меня работает. Мб у тебя что-то конфликтует?
    2. ahtung
      vuchaev2015, а что может конфликтовать? участие на кнопку таб? :)
Top