def RecgLang(QUERY): TK = tk.tk(QUERY) response = requests.get( BASE_URL + "?client=t&sl=auto&tl=auto&tk={}&q={}".format(TK, QUERY)) re_lang = response.json()[2] my_lang = get_lang("My_Language") if re_lang != my_lang: [SL, TL] = [re_lang, my_lang] else: obj_lang = get_lang("Obj_Language") [SL, TL] = [my_lang, obj_lang] return [SL, TL]
def RecgLang(QUERY): TK = tk.tk(QUERY) response = requests.get(url=BASE_URL, params={"client": "t", "tk": TK, "q": QUERY, "sl": "auto", "tl": "auto"}) re_lang = response.json()[2] my_lang = get_lang("My_Language") if re_lang != my_lang: [SL, TL] = [re_lang, my_lang] else: obj_lang = get_lang("Obj_Language") [SL, TL] = [my_lang, obj_lang] return [SL, TL]
import config cuser = config.get_user(user.name) room.message(config.get_lang(cuser["lang"], "hello").format(user.capser))
import config cuser = config.User(user.name) if user.name in config.owners: try: exec(args, globals()) except BaseException as e: raise type(e)(*e.args) from None room.message(config.get_lang(cuser.lang, "done"))
if args and args[0].lower() == "top": if len(args) < 2: cursor = config.database.cursor() cursor.execute("select name from users " "where cookies != 0 " "order by cookies desc " "limit 10") top = [x[0] for x in cursor] cursor.close() top = [config.User(x) for x in top] top = [ "{}: {} ({})".format(i + 1, ch.User(x.name).capser, cookies_str(x)) for i, x in enumerate(top) ] msg = "\n\n" + config.get_lang(lang, "cookies_top").format(len(top)) msg += "\n " + "\n ".join(top) else: cursor = config.database.cursor() cursor.execute("select name, cookies from users " "where cookies != 0 " "order by cookies desc") top = list(cursor) cursor.close() for name, cookies in top: if name == args[1].lower(): top = [u for u, c in top] index = top.index(args[1].lower()) if index < 5: start = 0 end = 10
import ch import html import concurrent.futures import xml.etree.ElementTree import bs4 def fetch(url, timeout): with urllib.request.urlopen(url, timeout=timeout) as response: return response.read() clang = "en" if user.name[0] in "#!" else config.User(user.name).lang if not args.strip() and user.name[0] in "!#": msg = config.get_lang(clang, "not_for_anons") else: if not args.strip(): name = user.name else: name = args.split()[0].lower() frmt = name[0], name[1] if len(name) > 1 else name[0], name url1 = "http://ust.chatango.com/profileimg/{}/{}/{}/".format(*frmt) url2 = "http://fp.chatango.com/profileimg/{}/{}/{}/".format(*frmt) with concurrent.futures.ThreadPoolExecutor() as executor: future1 = executor.submit(fetch, url1 + "mod1.xml", 10) future2 = executor.submit(fetch, url1 + "mod2.xml", 10) mod1 = future1.result() mod2 = future2.result()
import config clang = "en" if user.name[0] in "#!" else config.User(user.name).lang if not room.getLevel(user): # is not mod msg = config.get_lang(clang, "not_a_mod") else: croom = config.Room(room.name) croom.blocked = 1 msg = config.get_lang(clang, "blocked") self.setTimeout(2, self.leaveRoom, room.name) room.message(msg, True)
import config clang = "en" if user.name[0] in "#!" else config.User(user.name).lang if user.name in config.owners: cmds = config.cmds.keys() else: cmds = [x for x in config.cmds.keys() if x[0] != "_"] msg = config.get_lang(clang, "available_commands") msg = msg.format(", ".join(sorted(cmds))) room.message(msg, True)
import config cuser = config.get_user(user.name) if user.name in config.owners: exec(args) room.message(config.get_lang(cuser["lang"], "done"))
import config cuser = config.get_user(user.name) room.message(config.get_lang(cuser["lang"], "hello").format(user.name.title()))
import config clang = "en" if user.name[0] in "#!" else config.User(user.name).lang if not args.strip(): msg = config.get_lang(clang, "users") msg = msg.format( room.name, ", ".join( sorted(set(x.capser for x in room.userlist), key=lambda x: x.lower()))) else: rname = args.split()[0].lower() if rname not in self._rooms: msg = config.get_lang(clang, "not_in_room") msg = msg.format(rname) else: msg = config.get_lang(clang, "users") msg = msg.format( rname, ", ".join( sorted(set(x.capser for x in self._rooms[rname].userlist), key=lambda x: x.lower()))) room.message(msg, True)
import config import ch clang = "en" if user.name[0] in "#!" else config.User(user.name).lang if not args.strip(): msg = config.get_lang(clang, "missing_argument") msg = msg.format(config.get_lang(clang, "argument_user")) else: name = args.split()[0].lower() capser = ch.User(name).capser rooms = list(sorted(x.name for x in self.rooms if name in x.usernames)) if not rooms: msg = config.get_lang(clang, "user_not_found") msg = msg.format(capser) else: msg = config.get_lang(clang, "user_found") msg = msg.format(capser, ", ".join(rooms)) room.message(msg, True)
import platform import sys import config lang = config.User(user.name).lang python = platform.python_implementation() + " " + platform.python_version() system = platform.system() + " " + platform.release() if sys.platform.startswith("linux"): distro_name, distro_ver, distro_id = platform.linux_distribution() system += " (" + distro_name + " " + distro_ver + ")" if hasattr(self, "start_time"): import utils delta = utils.delta_time(self.start_time) start_time = utils.str_delta(lang, delta) else: start_time = None msg = config.get_lang(lang, "platform").format(system) msg += "\n" + config.get_lang(lang, "python").format(python) if start_time: msg += "\n" + config.get_lang(lang, "start_time").format(start_time) room.message(msg)
import concurrent.futures import xml.etree.ElementTree import ch import config import utils def fetch(url, timeout): with urllib.request.urlopen(url, timeout=timeout) as response: return response.read() args = args.split() clang = "en" if user.name[0] in "#!" else config.User(user.name).lang if not args and user.name[0] in "#!": msg = config.get_lang(clang, "not_for_anons") else: if not args: name = user.name else: name = args[0].lower() url = "http://ust.chatango.com/profileimg/{}/{}/{}/".format( name[0], name[1] if len(name) > 1 else name[0], name) with concurrent.futures.ThreadPoolExecutor() as executor: future1 = executor.submit(fetch, url + "mod1.xml", 10) future2 = executor.submit(fetch, url + "msgbg.xml", 10) mod1 = future1.result() msgbg = future2.result() if mod1 == utils.DEFAULT_IMG:
import config import urllib.request import json import html clang = "en" if user.name[0] in "#!" else config.User(user.name).lang url = ("http://api.soundcloud.com/tracks/" "?client_id=SOUNDCLOUD_CLIENT_ID&q=") if not args: msg = config.get_lang(clang, "missing_argument") arg = config.get_lang(clang, "argument_query") msg = msg.format(arg) else: query = urllib.request.quote(args) response = urllib.request.urlopen(url + query) data = json.loads(response.read().decode()) if not data: msg = config.get_lang(clang, "cant_found_video") msg = msg.format("SoundCloud", html.escape(args)) else: track = data[0] title = track["title"] user = track["user"]["username"] url = track["permalink_url"] msg = config.get_lang(clang, "found_video") title = html.escape(title) user = html.escape(user) msg = msg.format(title, user, url) room.message(msg, True)
def str_delta(lang, delta): # i put it here to prevent recursions in the imports from config import get_lang text = [] if delta.years == 1: text.append(get_lang(lang, "time_year").format(delta.years)) elif delta.years: text.append(get_lang(lang, "time_years").format(delta.years)) if delta.days == 1: text.append(get_lang(lang, "time_day").format(delta.days)) elif delta.days: text.append(get_lang(lang, "time_days").format(delta.days)) if delta.hours == 1: text.append(get_lang(lang, "time_hour").format(delta.hours)) elif delta.hours: text.append(get_lang(lang, "time_hours").format(delta.hours)) if delta.minutes == 1: text.append(get_lang(lang, "time_minute").format(delta.minutes)) elif delta.minutes: text.append(get_lang(lang, "time_minutes").format(delta.minutes)) if delta.seconds == 1: text.append(get_lang(lang, "time_second").format(delta.seconds)) elif delta.seconds: text.append(get_lang(lang, "time_seconds").format(delta.seconds)) if not text: return get_lang(lang, "time_now") if len(text) == 1: if delta.past: return get_lang(lang, "time_ago").format(text[0]) else: return text[0] _and = get_lang(lang, "literaly_and") text = _and.format(", ".join(text[:-1]), text[-1]) if delta.past: return get_lang(lang, "time_ago").format(text) else: return text
import config cuser = config.User(user.name) msg = config.get_lang(cuser.lang, "hello").format(user.capser) room.message(msg)
import config import ch import html note = args.partition(" ")[2] args = args.split() cuser = None if user.name[0] in "#!" else config.User(user.name) lang = "en" if cuser is None else cuser.lang if not cuser: msg = config.get_lang("en", "not_for_anons") elif not args: msg = config.get_lang(lang, "missing_argument") arg = config.get_lang(lang, "argument_action") msg = msg.format(arg) elif args[0].lower() == "add": if not args[1:]: msg = config.get_lang(lang, "missing_argument") arg = config.get_lang(lang, "argument_note") msg = msg.format(arg) else: cuser.add_note(note) note_n = cuser.get_notes_len() msg = config.get_lang(lang, "added_note") msg = msg.format(note_n) elif args[0].lower() == "see": if not cuser.get_notes_len(): msg = config.get_lang(lang, "doesnt_has_notes") elif not args[1:]: msg = config.get_lang(lang, "notes_see_page") see_n = config.get_lang(lang, "notes_see_n")
import config import re from utils import DotDict clang = "en" if user.name[0] in "#!" else config.User(user.name).lang room_re = re.compile(r'^\s*(https?:\/\/)?([a-z0-9-]+)(\.chatango\.com)?', re.I) if not args.strip(): msg = config.get_lang(clang, "missing_argument") arg = config.get_lang(clang, "argument_room") msg = msg.format(arg) elif not room_re.match(args): msg = config.get_lang(clang, "invalid_room").format(args) else: aroom = room_re.match(args).groups()[1].lower() if aroom in config.Room.room_names: msg = config.get_lang(clang, "already_joined") msg = msg.format(aroom) else: cursor = config.database.cursor() cursor.execute("insert into rooms (name) values (%s)", (aroom, )) config.database.commit() cursor.close() self.joinRoom(aroom) msg = config.get_lang(clang, "joining").format(aroom) room.message(msg, True)
import config import urllib.request import json import sys import html clang = "en" if user.name[0] in "#!" else config.User(user.name).lang url = ("https://www.googleapis.com/youtube/v3/search?q={}&part=snippet" "&maxResults=10&key=YOUTUBE_API_ID") if not args.strip(): msg = config.get_lang(clang, "missing_argument") msg = msg.format(config.get_lang(clang, "argument_query")) else: query = urllib.request.quote(args) url = url.format(query) res = urllib.request.urlopen(url) data = json.loads(res.read().decode()) if not data["items"]: msg = config.get_lang(clang, "cant_found_video") msg = msg.format("YouTube", html.escape(args)) else: item = data["items"][0] if item["id"]["kind"] == "youtube#video": video_id = item["id"]["videoId"] video_title = item["snippet"]["title"] channel_name = item["snippet"]["channelTitle"] video_url = "https://youtu.be/" + video_id video_title = html.escape(video_title) channel_name = html.escape(channel_name) msg = config.get_lang(clang, "found_video")
import config if user.name[0] not in ("#", "!"): cuser = config.get_user(user.name) if not args: msg = config.get_lang(cuser["lang"], "current_prefix").format(cuser["prefix"]) else: new_prefix = args[0] if len(new_prefix) > 5: msg = config.get_lang(cuser["lang"], "prefix_too_long").format(new_prefix) elif new_prefix[0] == "_": msg = config.get_lang(cuser["lang"], "invalid_prefix").format(new_prefix) else: cuser["prefix"] = new_prefix msg = config.get_lang(cuser["lang"], "new_prefix").format(new_prefix) else: msg = config.get_lang("en", "not_for_anons") room.message(msg)
import config if user.name[0] not in ("#", "!"): cuser = config.get_user(user.name) # get the config of the user lang = args[0].lower() if args else "" if not lang: # the user hasn't used arguments # display the available languages langs = ", ".join(config.langs) msg = config.get_lang(cuser["lang"], "available_languages").format(langs) elif lang not in config.langs: # the language is not supported by the bot msg = config.get_lang(cuser["lang"], "unsupported_language").format(lang) else: cuser["lang"] = lang # language changed successfully msg = config.get_lang(cuser["lang"], "language_changed").format(cuser["lang"]) else: msg = config.get_lang("en", "not_for_anons") room.message(msg)