Есть код бота Discord
import discord, time, random, schedule, requests, datetime
from discord.ext import commands
TOKEN = "тут вводится токин но я его стер"
dashes = ['\u2680', '\u2681', '\u2682', '\u2683', '\u2684', '\u2685']
class YLBotClient(discord.Client):
async def on_ready(self):
print(f'{self.user} has connected to Discord!')
for guild in self.guilds:
print(
f'{self.user} подключились к чату и готов показать случайного котика (или пёсика!):\n'
f'{guild.name}(id: {guild.id})')
async def on_message(self, message):
if message.author == self.user:
return
if "кот" in message.content.lower():
response_cat = requests.get('https://api.thecatapi.com/v1/images/search')
json_response_cat = response_cat.json()
toponym_cat = json_response_cat[0]['url']
await message.channel.send(toponym_cat)
if "собака" in message.content.lower():
response_dog = requests.get('https://dog.ceo/api/breeds/image/random')
json_response_dog = response_dog.json()
toponym_dog = json_response_dog['message']
await message.channel.send(toponym_dog)
class RandomThings(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.command(name='roll_dice')
async def roll_dice(self, ctx, count):
res = [random.choice(dashes) for _ in range(int(count))]
await ctx.send(" ".join(res))
@commands.command(name='randint')
async def my_randint(self, ctx, min_int, max_int):
num = random.randint(int(min_int), int(max_int))
await ctx.send(num)
bot = commands.Bot(command_prefix='-- ')
bot.add_cog(RandomThings(bot))
client = YLBotClient()
bot.run(TOKEN)
client.run(TOKEN))
Во можно-ли запускать bot.run(TOKEN) и client.run(TOKEN)) (чтоб они работали вместе) а то когда я ставлю что - то первее другой класс не запускается
◘Достоверность информации. Ин-фа достоверна, если отражает истинное положение дел. (объективная информация всегда достоверна)
◘Полнота информации. Информация полная, если ее достаточно для понимания и принятия решения.
◘Точность информации. Определяется степенью ее близости к реальному состоянию объекта, процесса, явления и т.д.
◘Актуальность информации – важность для настоящего времени.
◘Полезность информации.
- Самая ценная информация – объективная, достоверная, полная, и актуальная.
Итак, целевой язык - C++. Это значит мы - радостные обладатели технологии потоков, с коей мы будем производить весь ввод/вывод как при работе с файлами, так и при работе со стандартным вводом/выводом (консолью).
Ну а раз уж мы работаем с потоками, то будем делать это красивенько: создадим класс-обёртку для потока ввода, цель которого - поиск в этом потоке цитат и отправка их на поток вывода (который мы передаём).
[!] Стоит отметить, что по заданию не сказано, что есть разница между ' и ". Поэтому будем считать их одинаковыми.
[!] Внимание! Рядом с исполняемым файлом надо создать текстовый файл data.txt c текстом и цитатами.
КодС++11
#include <iostream>#include <fstream>using std::cout;class QuotesFinder { std::istream &in_stream; bool is_it_in_quote = false;public: QuotesFinder() = delete; QuotesFinder(QuotesFinder&&) = default; QuotesFinder(QuotesFinder const&) = default; explicit QuotesFinder(std::istream &is) : in_stream(is) {} [[nodiscard]] bool eof() const { return in_stream.eof(); } // Вот тут происходит вся магия QuotesFinder& operator >> (std::ostream& out_stream) { char buffer; in_stream.get(buffer); //Получаем очередной символ из потока if (buffer == '\"' || buffer == '\'') { if (is_it_in_quote) { is_it_in_quote = false; out_stream << buffer; out_stream << "\n"; return *this; } is_it_in_quote = true; } if (is_it_in_quote) { out_stream << buffer; } return *this; }};int main() { std::ifstream file("data.txt"); // Открываем файл if (!file.is_open()) { cout << "File is not exits!"; return 1; } QuotesFinder finder(file); // Создаём обёртку из файлового потока while (!finder.eof()) // Пока не достигли конца потока finder >> cout; // переправляем очередной кусок информации в поток вывода}