Загрузка...

Theme with merged additions

Thread in Extentions created by vuchaev2015 Apr 24, 2022. (bumped Jul 21, 2025 at 1:35 AM) 26,958 views

  1. vuchaev2015
    vuchaev2015 Topic starter Apr 24, 2022 все ближе и ближе... 23,529 Feb 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
     
    1. WTF
    2. premium
      WTF, а они там не работают?
  2. Характерный
    Красиво
    The post was merged to previous Apr 24, 2022
    Сделай адаптацию под каждый уник
     
  3. CryptoBot
    го фикс
    [IMG]
     
    1. vuchaev2015 Topic starter
      CryptoBot, спасибо, я особо не старался :finger_up:
  4. cifzy
    cifzy Apr 24, 2022 я прощу тебе сейчас, но не прощу себе потом. 15,556 Aug 11, 2018
     
    1. vuchaev2015 Topic starter
  5. avalanche
    Ашалеть, чел под свой уник целый стиль сделал) :anime_thumbs_up:
     
    1. vuchaev2015 Topic starter
      @geodb, ну как сказать сделал... адаптировал :da:
  6. lean
    Для полной картины у каждого должен быть такой уник:finger_up:
     
    1. vuchaev2015 Topic starter
      lean, желаем каждому в доме такого гостя
  7. Девочка
    в глаза бьет и текст плохо читаем
    [IMG]
     
    1. vuchaev2015 Topic starter
      Девочка, да, но все остальные цвета гавняно смотрятся если не белый выбирать :finger_up:
    2. Девочка
  8. MisterProfit
    MisterProfit Apr 24, 2022 24,706 Mar 3, 2020
    Пиздато, чисто под анонимуса в серой толстовке
     
  9. Target
    Target Apr 24, 2022 610 Nov 5, 2019
    Ляяяя балдежный стиль:animezerotwo:
     
  10. poliph
    [IMG] [IMG] [IMG] красота
     
    1. даня
      poliph, ещё и аниме на фоне, просто мечта
  11. S666wop
    S666wop Apr 24, 2022 Да, нас хотят видеть, мы лучшие в своей нише 1572 Sep 12, 2020
    Как по мне темка не очень, сильно засвечивает кнопки, да и серый с зеленым смотрится куда уместнее для такого форума, но для любителей голубого пойдет):smile:
     
    1. vuchaev2015 Topic starter
      S666wop, да, согласен, стиль на любителя. Текст сделать виднее сложновато потому что другие цвета плохо сочетаются
  12. sadness112
    sadness112 Apr 25, 2022 Здесь могла бы быть ваша реклама :kirbi: 703 Dec 27, 2020
    Вообще текст не видно, а так прикольно)
    И да, ониме сосать!
     
    1. vuchaev2015 Topic starter
      sadness112, постараюсь найти какое-то решение с текстос
  13. Клубняк
    для голубых самое то, ну и ещё зимой такое ставить можно
     
  14. РозоваяПантера
    Сделай ещё розовый
     
    1. Rei
  15. lilies_inactive3843855
    lilies_inactive3843855 Apr 29, 2022 Hustle Tales 249 Jan 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 May 5, 2022 <— видишь зеленый кружок? 4604 Sep 26, 2021
    Оууу майй. Кайффф
     
  18. vuchaev2015
    vuchaev2015 Topic starter Dec 16, 2022 все ближе и ближе... 23,529 Feb 15, 2018
    После установки скрипта, скрипт по мере того как вы прогружаете розыгрыши будет сортировать их по удобным образом по меньшему и времени и большей сумме. Чтобы вы всегда успевали принимать участие в крутых розыгрышах :smart2011:

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

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




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

    Другие мои темы:
    Lolzteam Contest Helper - участвовать станет легче
    Скрипт для получения общей суммы розыгрышей
     
  19. SUFA
    Не нарушение?)
     
    1. vuchaev2015 Topic starter
      SUFA, а что оно нарушает?) просто фильтрует
    2. SUFA
  20. ahtung
    ahtung Dec 16, 2022 мне похуй я умпалумп 500 Jun 29, 2020
    хуйня не работает, страница перестает грузить
     
    1. vuchaev2015 Topic starter
      ahtung, должно грузить, у меня работает. Мб у тебя что-то конфликтует?
    2. ahtung
      vuchaev2015, а что может конфликтовать? участие на кнопку таб? :)
    3. vuchaev2015 Topic starter
Loading...
Top