ov3rwrite 26 Опубликовано: 1 июля, 2020 Вдруг решил я написать программу для управления компом через дискорд, но поскольку на Lua это не реализовано(по крайней мере здесь ничего подобного не было),я решил использоовать Python, да и тем более мне не взлюбился Lua,да и знаю я его слабо.Обращаю внимание на то,что код на стороне Lua это дичайший франкенштейн из разных гайдов и функций в интернете!Да и сторона питона то вообщем не славится отсутствием костылей) Код на Lua: Скрытый текст Код на Python: Скрытый текст Внимание! В client.run находится токен бота. global использовать было нежелательно,но это самое быстрое решение которое я нашел Перед использованием необходимо открыть порт(в данном случае 1337) В internet.open первым аргументом указываете свой айпи(там не мой айпи,пробить не пытайтесь) Инструкция по использованию: 1.Запустить код на Python(сервер) 2.Запустить код на Lua(клиент) В консоли где вы запускали питоновский код,должно появится сообщение "<адрес> connected" 3.В дискорд сервере куда вы пригласили бота написать /execute_lua <команда> и он выполнит команду на OpenOS и вернет вам то,что вывела эта команда (эта команда выполнится на компе OpenComputers) Скоро появятся новые фичи по типу выполнения кода на луа и видео с примером использования. 1 1 1 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ov3rwrite Автор темы 26 Опубликовано: 1 июля, 2020 А вот и пример использования: Скрытый текст На фоне звуки от майнкрафта, это не шум микрофона) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Taruu 30 Опубликовано: 1 июля, 2020 Необычное решение. Могу дать совет почитать лучше discord.py так как там есть готовые обработчики команды а не через on_message. Так же вопрос как подключатся если ты играешь на сервере? Ну просто безопасности никакой нет. А если и есть свой хост с белым ip то хотя бы пароль (думаю там и ключи можно но хз как они в компах робят). по хорошему еще прием сообщений через сокет делать асинхронным что бы бот не блокировался весь и можно получать к примеру множество сообщений... ТАК же очень не советую юзать глобальные переменные, ихмо если код будет большим лучше сделать класс (есть шанс запутаться). По коду на lua не шарю но вроде норм для такого варианта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ov3rwrite Автор темы 26 Опубликовано: 1 июля, 2020 (изменено) 50 минут назад, Taruu сказал: Необычное решение. Могу дать совет почитать лучше discord.py так как там есть готовые обработчики команды а не через on_message. Так же вопрос как подключатся если ты играешь на сервере? Ну просто безопасности никакой нет. А если и есть свой хост с белым ip то хотя бы пароль (думаю там и ключи можно но хз как они в компах робят). по хорошему еще прием сообщений через сокет делать асинхронным что бы бот не блокировался весь и можно получать к примеру множество сообщений... ТАК же очень не советую юзать глобальные переменные, ихмо если код будет большим лучше сделать класс (есть шанс запутаться). По коду на lua не шарю но вроде норм для такого варианта. Угу,я знаю,декоратор client.command и prefix.Класс уже пробовал,не получилось,знаю что global лучше не юзать.Не стал делать асинхронность(хотя желательно) ибо это было расчитано на 1 клиента.Опять же поскольку было расчитано на 1 клиента и об этом никто не знал,о безопасности речи и быть не может ибо зачем.Скоро все пофикшу И да,если ты не понял то демонстрация клиента происходила на стороннем сервере майна а сервер программы запускался на моем компе)0.0.0.0 в сервере - весь инет,а то что в клиенте - айпи(не локальный) так что вот так Изменено 1 июля, 2020 пользователем ov3rwrite Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 2 июля, 2020 Тоесть выходит, что это просто программа дистанционного доступа к ОС компу. А нельзя было сделать аналогично но без использованием внешнего сервера? (не разбирался как работает дискорд) И код лучше всего выложить не скрином а именно кодом, так как скрины могут пропадать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ov3rwrite Автор темы 26 Опубликовано: 2 июля, 2020 (изменено) 25 минут назад, Asior сказал: Тоесть выходит, что это просто программа дистанционного доступа к ОС компу. А нельзя было сделать аналогично но без использованием внешнего сервера? (не разбирался как работает дискорд) И код лучше всего выложить не скрином а именно кодом, так как скрины могут пропадать. И как же вы предлагаете без внешнего сервера?)Куда подключаться?И да,без проблем можно реализовать мост между чатами.Вы говорите так,как-будто эта программа должна делать что-то большее Изменено 2 июля, 2020 пользователем ov3rwrite Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya 415 Опубликовано: 2 июля, 2020 (изменено) 33 минуты назад, ov3rwrite сказал: И как же вы предлагаете без внешнего сервера?)Куда подключаться?И да,без проблем можно реализовать мост между чатами.Вы говорите так,как-будто эта программа должна делать что-то большее https://discord.com/developers/docs/reference Цитата Discord's API is based around two core layers, a HTTPS/REST API for general operations, and persistent secure WebSocket based connection for sending and subscribing to real-time events. The most common use case of the Discord API will be providing a service, or access to a platform through the OAuth2 API. Т.е, если я не ошибаюсь, можно сделать клиент без вебсокетов. Но придется каждый раз запрашивать вручную на предмет новых сообщений, да. P.S так же: All HTTP-layer services and protocols (e.g. HTTP, WebSocket) within the Discord API are using TLS 1.2. Это значит, что используя библиотеку Fingercomp (Который не хочет писать TLS 1.3) и написав вебсокеты, можно сделать даже сделать реалтайм клиент. Изменено 2 июля, 2020 пользователем BrightYC Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ov3rwrite Автор темы 26 Опубликовано: 2 июля, 2020 8 минут назад, BrightYC сказал: https://discord.com/developers/docs/reference Т.е, если я не ошибаюсь, можно сделать клиент без вебсокетов. Но придется каждый раз запрашивать вручную на предмет новых сообщений, да. P.S так же: All HTTP-layer services and protocols (e.g. HTTP, WebSocket) within the Discord API are using TLS 1.2. Это значит, что используя библиотеку Fingercomp (Который не хочет писать TLS 1.3) и написав вебсокеты, можно сделать даже сделать реалтайм клиент. Вполне вероятно)Если честно я очень поверхнстно разбираюсь в discord api,поэтому не стал заморачиваться Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ov3rwrite Автор темы 26 Опубликовано: 16 августа, 2020 Вообщем залил я все это дело на гитхаб, если кому это вообще понадобится https://github.com/GalactiMeX/OC-Discord 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах