Загрузка...

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

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

Загрузка...
  1. OlegBrawler
    Бедный РайсМорган, а он старается, делает новые обновления
     
    1. vuchaev2015 Автор темы
      OlegBrawler, я сам против такого, но возможно кому-то и правда proxy.php добавляет лишние действия и мешает, а так мы освобождаем пользователя от лишних действий, пожертвовав безопасностью от мисскликов по неизвестным сайтам:solevoi:
    2. OlegBrawler
      vuchaev2015, ну мне в сливе фото мешает, поэтому будет полезно
  2. Glep
    Glep 22 июн 2023 3297 11 янв 2021
    Можно оставить для некоторых сайтов
     
  3. лудорас
    Жаждим ту самую python версию
     
  4. vuchaev2015
    vuchaev2015 Автор темы 27 июн 2023 все ближе и ближе... 23 654 15 фев 2018
    Написан быстро, много гавнокода, но работает.

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

    [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 http://tampermonkey.net/
    // @version 0.1
    // @description try to take over the world!
    // @author vuchaev2015
    // @match https://zelenka.guru/*
    // @icon https://www.google.com/s2/favicons?sz=64&domain=zelenka.guru
    // @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:
     
    27 июн 2023 Изменено
  5. mrekk
    mrekk 27 июн 2023 6283 29 авг 2021
    ты чево натворил...
     
    1. vuchaev2015 Автор темы
      mrekk, жестко накал :finger_up:
  6. Udodov
    Udodov 27 июн 2023 Заблокирован(а) 683 28 окт 2018
    круто, но почему эта тема красным цветом подсвечивается...
     
    27 июн 2023 Изменено
  7. OlegBrawler
    Ты должен был бороться со злом, а не примкнуть к нему
     
    1. Посмотреть предыдущие комментарии (6)
    2. OlegBrawler
      protect, кстати, какой я красивый:stitchcute:
  8. Растение
    Растение 27 июн 2023 27 305 26 сен 2021
    Не совсем понимаю зачем ибо и без трофея понятно где оффтоп, а где нет. Разве что для кекичей.:wut:
     
    27 июн 2023 Изменено
    1. vuchaev2015 Автор темы
      Растение, для кекичей сделал и для экономии времени, тем более на GPT-4 новинки лолзтим гуру :peka:
    2. Самомнение
      vuchaev2015, ты хочешь что бы кекичи устроили геноцид? :spain_wait:
  9. KOliShka
    KOliShka 30 июн 2023 Заблокирован(а) 25 24 апр 2023
    Так и знал что есть фермы репортов
     
  10. YARCHEE
    Предлагаю такую мини-обнову запилить.
    Если будет находить мошенников, то "мошенник" будет выделяться красным и начертание будет чуть жирней.
    [IMG]
     
    1. 1xday
      YARCHEE, код опенсурс, ебашь, все в твоих руках
    2. KILLDESU
      YARCHEE, если находиться мошенник, то вместо сейчас на сайте (на вкладке) будешь писаться обнаружен мошенник
  11. protect
    мог бы дать requirements

    Код
    anyio==3.7.1
    BingImageCreator==0.4.4
    blinker==1.6.2
    certifi==2023.5.7
    charset-normalizer==3.2.0
    click==8.1.4
    colorama==0.4.6
    exceptiongroup==1.1.2
    Flask==2.3.2
    Flask-Cors==4.0.0
    h11==0.14.0
    httpcore==0.17.3
    httpx==0.24.1
    idna==3.4
    itsdangerous==2.1.2
    Jinja2==3.1.2
    MarkupSafe==2.1.3
    regex==2023.6.3
    requests==2.31.0
    sniffio==1.3.0
    urllib3==2.0.3
    websockets==11.0.3
    Werkzeug==2.3.6
     
    9 июл 2023 Изменено
    1. Посмотреть предыдущие комментарии (1)
    2. protect
      1xday, как ты его на nginx поставил?
  12. a911
    a911 9 июл 2023 Продам рекламу в профиле lolz.live/threads/2604681 50 533 30 май 2018
    значит пришел я написать претензию, ты написал вредительский скрипт, забираем у тебя трофей респектабельного пользователя
    [IMG]
     
    1. OlegBrawler
      a911, люди, реально кидают репорты из-за того, что сообщение помечены красным:ducklaugh:
  13. lilrusher
    lilrusher 12 июл 2023 psycho ceo 1663 22 дек 2021
    не ворк
     
  14. STEALYOURBRAIN
    скрипт не ворк (
     
  15. vuchaev2015
    vuchaev2015 Автор темы 15 июл 2023 все ближе и ближе... 23 654 15 фев 2018
    Для работы скрипта требуется расширение в браузере 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]последний написавший, время создания, количество симпатий

    Работает немного не так как надо если прогружены дополнительные темы ниже.
     
    15 июл 2023 Изменено
  16. Сыщик
    Сыщик 15 июл 2023 Найдено 237 мульта и 1 фермер|Лига опасного форума 620 20 янв 2019
    Бля, я опоздал, я сам такую хуйнюшку написать хотел))
     
  17. 123
    123 15 июл 2023 ЛУЧШИЕ ВЕРИФИКАЦИИ - https://lolz.live/threads/4228395/ 8622 23 мар 2019
    Годно
     
  18. dev101
    dev101 15 июл 2023 12 643 9 окт 2021
    Вроде кто-то уже сделал такое.
     
    15 июл 2023 Изменено
    1. vuchaev2015 Автор темы
      dev101, малварь возможно, но я чуть улучшил скрипт. У него появляются полоски тем при обновлении (что значительно мешает), я эти полоски удалил.
      [IMG]пару строчек, но ощущение от этого совсем другое
  19. Растение
    Растение 15 июл 2023 27 305 26 сен 2021
    Я в чате гпт такое за 20 секунд написал, точнее он мне скрипт написал.
     
    1. vuchaev2015 Автор темы
    2. Растение
      vuchaev2015, вот бы ещё конечно ТГ посмотрел, а не игнорил.
  20. Инопланетянец
    А f5 ткнуть? Или это круче в чем то?
     
    1. Посмотреть предыдущие комментарии (1)
    2. Растение
      Инопланетянец, ну типа надо своими пальцами дотягиваться, это ведь так тяжело. :stoneebalo:
    3. Растение
Top