def getversions(data): # Input -> a dict that maps # spicename -> metadata # 'system' : version # Input -> a list of (str) spicenames, json-encoded # Output -> [spicename, spicename, system?] # where system is included only if the system spices # must be updated updates = [] for spicename, metadata in data.iteritems(): if spicename == 'system': storedversion = get('systemversion') log("SYSTEM CHECK: %s %s %s" % (storedversion, metadata, storedversion == metadata)) if str(storedversion) != str(metadata): updates.append(spicename) continue mid = get('spice-id:%s' % spicename.replace(' ', '-')) storeddata = get('metadata:%s' % mid) if not storeddata or not metadata or 'version' not in storeddata or 'version' not in metadata: continue storedversion = storeddata['version'] if str(storedversion) != str(metadata['version']): updates.append(spicename) #log("Required Updates: %s", updates) return json.dumps(updates)
def C_JOIN(S, DB, sender, args): if len(args) != 1: C_HELP(S, DB, sender, ["join"]) return rows = get(DB, "SELECT username FROM players WHERE username='******'".format(sender)) if not len(rows): # It's a new player. put(DB, "INSERT INTO players (username, name, desc, room, pass) VALUES ('{0}', '{0}', ' ', '0', '{1}')".format(sender, hashlib.sha256(args[0]).hexdigest())) send(S, sender, "Created new player \"{0}\". Your password is \"{1}\".".format(sender, args[0])) passhash = get(DB, "SELECT pass FROM players WHERE username='******'".format(sender)) if passhash[0][0] == hashlib.sha256(args[0]).hexdigest(): # Authenticated successfully. setonline(DB, sender, 1) roomid = getroom(DB, sender) enterroom(DB, roomid, sender) # Add player to their room. playerinfo = playerstat(DB, sender) send(S, sender, "Welcome, {0}.".format(playerinfo["name"])) # Greet player. announce(S, DB, "{0} joined the game.".format(playerinfo["name"])) announce_room(S, DB, roomid, "{0} entered the room.".format(playerinfo["name"])) else: # Bad login. send(S, sender, "Incorrect password for registered player.")
def C_SELF(S, DB, sender, args): if len(args) == 0: # Look at youself. C_LOOK(S, DB, sender, [sender]) elif len(args) >= 3 and args[0].lower() == "set": # Modify yourself. if args[1].lower() == "name": # Set name. pnames = get(DB, "SELECT name FROM players") for name in pnames: # Check if name is taken. if " ".join(args[2:]).lower() == name[0].lower(): send(S, sender, "A player by that name already exists.") return if goodname(" ".join(args[2:])): put(DB, "UPDATE players SET name='{0}' WHERE username='******'".format(E(" ".join(args[2:])), sender)) send(S, sender, "Name updated.") else: send(S, sender, "Invalid name.") elif args[1].lower() == "desc": # Set description. if args[2].startswith("\\\\"): # Append for long description. curr = get(DB, "SELECT desc FROM players WHERE username='******'".format(sender)) newdesc = "{0}\n{1}".format(E(curr[0][0]), E(" ".join(args[2:])[2:])) put(DB, "UPDATE players SET desc='{0}' WHERE username='******'".format(newdesc, sender)) else: put(DB, "UPDATE players SET desc='{0}' WHERE username='******'".format(E(" ".join(args[2:])), sender)) send(S, sender, "Description updated.") else: C_HELP(S, DB, sender, ["self set"]) elif args[0].lower() == "set": C_HELP(S, DB, sender, ["self set"]) else: C_HELP(S, DB, sender, ["self"])
def playerstat(DB, player): name = get(DB, "SELECT name FROM players WHERE username='******'".format(player))[0][0] desc = get(DB, "SELECT desc FROM players WHERE username='******'".format(player))[0][0] online = get(DB, "SELECT online FROM players WHERE username='******'".format(player))[0][0] room = get(DB, "SELECT room FROM players WHERE username='******'".format(player))[0][0] return {"name": name, "desc": desc, "online": online, "room": room}
def report_usages(): usages = {} usage_keys = get('dbkeylist:usagekeys:all') for key in usage_keys: usage_val = get(key) usages[key] = usage_val return json.dumps(usages)
def load(self): """resume session via cookie or start a new guest session""" if "sid" in self.req.cookies: self.__dict__.update(objstore.get(type="session", name=self.req.cookies["sid"])) if not self.user: self.user = "******" self.new_sid() database.get() database.conn.begin() objstore.post(type="session", user=self.user, name=self.name) database.conn.commit()
def addSpice(mid, metadata): try: log('[spicemanager] in func:addSpice') gituser = metadata['gituser'] token = metadata['token'] repo = metadata['repo'] spicename = metadata['spicename'] author = metadata['author'] tagline = metadata['tagline'] description = metadata['description'] #hotkey = metadata['hotkey'] # check to make sure that the user owns spice spicemeta = get('metadata:%s' % mid) if spicemeta and spicemeta['gituser'] != gituser: raise Exception('User %s is not authorized to change this spice.' % gituser) # clone their repo into /home/ec2-user/temp/cloned raise Exception('Hmmmmm., how to do this....') # Re-arrange their files cmd('mkdir /home/ec2-user/temp/cloned/%s' % spicename) cmd('mv /home/ec2-user/temp/cloned/* /home/ec2-user/temp/cloned/%s' % spicename) # tar files from it to spices/ iconpath = '/home/ec2-user/temp/cloned/%s/icon.png' % spicename if not os.path.exists(iconpath): cmd('tar -cvf /home/ec2-user/spices/%s.tar.gz /home/ec2-user/spicerackdev/%s' % (mid, spicename)) else: cmd('cp %s /home/ec2-user/icons/%s.png' % (iconpath, mid)) iconpath = iconpath.strip('icon.png') cmd('tar -cvf /home/ec2-user/spices/%s.tar.gz /home/ec2-user/spicerackdev/%s --directory=%s icon.png' % (mid, spicename, iconpath)) # delete the cloned repo cmd('rm -f -r /home/ec2-user/temp/cloned/%s') % spicename # Send a POST to the heroku server payload = {} payload[mid] = { 'spicename' : spicename, 'gituser' : gituser, 'author' : author, 'tagline' : tagline, 'description' : description, 'version' : get('version:%s' % mid), 'hotkey' : hotkey, } put('metadata:%s' % mid, payload[mid]) send_post(payload, '/spices/refresh') except Exception as e: payload = {'error' : 'Error in adding Spice: %s' % str(e)} send_post(payload, '/spices/refresh')
def sql_to_abs(): global data, last_save data = [copy.deepcopy(init_data)] # Make sure data is reset. info = get("SELECT name,author,description,notes FROM info")[0] # Get info. data[0]["info"] = {"name": info[0], "author": info[1], "description": info[2], "notes": info[3]} scenes = get("SELECT order_id,name,contents FROM scenes") # Get scenes. for scene in scenes: data[0]["scenes"].append({"order_id": scene[0], "name": scene[1], "contents": scene[2]}) last_save = copy.deepcopy(data[-1])
def cmd_modified(args, context): if len(args) != 0: return False lm = get("SELECT last_modified FROM info") lm = lm[0][0] body = "Last modified: {0}".format(time.strftime(config.timestamp_format, time.localtime(lm))) return {"body": body}
def authenhandler ( req ) : if req.headers_in.has_key( "Authorization" ) : # If authorization is sent either req.user is set or an error response is produced try : type , uuid = req.headers_in["Authorization"].split(" ",1) except ValueError , ex : req.log_error( "authenhandler : Malformed Authorization header '%s'" % req.headers_in["Authorization"] ) req.status = apache.HTTP_UNAUTHORIZED return apache.DONE # NOTE : nagios http configuration will not go through response handler if type == "Basic" : try : db = database.get() except database.C3DBException , ex : req.log_error( "authenhandler : exception '%s' while accessing database" % ex.type , apache.APLOG_EMERG ) req.status = apache.HTTP_INTERNAL_SERVER_ERROR return apache.OK if not db.check_user_password( req.user , req.get_basic_auth_pw() ) : db.close() req.log_error( "authenhandler : Wrong password for user %s" % req.user ) # NOTE : This is a browser response, so we can perform a hard return return apache.HTTP_UNAUTHORIZED req.log_error( "authenhandler : user '%s' from Basic Authentication" % req.user , apache.APLOG_INFO ) if db.get_user_group( req.user ) == "nagiosadmin" : req.user = "******" else : req.user = "******" db.close() return apache.OK
def handler ( req ) : # FIXME : reuse code to get unique UUID on args if req.args or req.method == "POST" : _args = util.FieldStorage(req) args = dict( map( lambda x: tuple ( ( x , _args.get(x,None) ) ) , _args.keys() ) ) missing = [] for required in ( 'UUID' , 'DISTRO' , 'HOSTNAME' ) : if not args.has_key( required ) : missing.append( required ) if missing : return send_error( req , "%s missing" % ", ".join(missing) ) else : return send_error( req , "Malformed request" ) error_msg = [] try : db = database.get() except database.C3DBException , ex : msg = "Exception '%s' while accessing database" % ex.type req.log_error( "register handler : %s" % msg , apache.APLOG_EMERG ) req.status = apache.HTTP_INTERNAL_SERVER_ERROR return apache.OK
def columns(self, table): """get columns of""" import database if not self._columns.get(table): self._columns[table] = [c[0] for c in \ database.get().sql("desc `%s`" % table, as_dict=False)] return self._columns[table]
def __dump(self, name=None): db = database.get(self.connection_info) db_schema = db.schema if (name): table = db_schema.get_table(name) yml = "tables:\n" + table.get_yaml() else: yml = db_schema.get_yaml() return yml
def get(**args): """start a new session""" req = http_request.req req.session = Session(req) if req.form.get("user"): database.get() database.conn.begin() req.session.new() database.conn.commit() else: req.session.load() return { "user": req.session.user, "sid": req.session.name, "userobj": objstore.get(type="user", name=req.session.user), }
def sync(self): self.__ensure_valid() db = database.get(self.connection_info) #db_schema = db.schema #yml_schema = self.__load_yml_schema() cs = None yml_schema = None #cs = changeset.Diff(self.path + "/versions/head.yaml", yml_schema, db_schema) db.sync(cs, yml_schema)
def getversions(data): """ Given a set of spices Input -> a dict that maps spicename -> metadata 'system' : version Input -> a list of (str) spicenames, json-encoded Output -> [spicename, spicename, system?] where system is included only if the system spices must be updated """ updates = [] for spicename, metadata in data.iteritems(): if spicename == 'system': storedversion = get('systemversion') if str(storedversion) != str(metadata): Statsd.increment('update.system') updates.append(spicename) continue if isinstance(metadata, str): try: metadata = json.loads(metadata) except ValueError: log('Metadata for spice "%s" could not be json decoded: "%s"', spicename, metadata) continue mid = get('spice-id:%s' % spicename.replace(' ', '-')) storeddata = get('metadata:%s' % mid) if storeddata is None: log('No stored data for spice %s, skipping.', spicename) continue if any([not storeddata, not metadata, 'version' not in storeddata, 'version' not in metadata]): continue storedversion = storeddata['version'] if str(storedversion) != str(metadata['version']): Statsd.increment('update.%s' % spicename.replace(' ', '-')) updates.append(spicename) return json.dumps(updates)
def all(bot, update): messages = database.get(update.message.chat_id) if type(messages) is str: bot.sendMessage(update.message.chat_id, text=messages) else: books = messages["books"] msg = "" for book in books: msg += "{}: {}\n".format(str(book["page"]).zfill(3), book["title"]) bot.sendMessage(update.message.chat_id, text=msg)
def test_one(protocol, variables): """Runs one single test, returns the CER on the test set""" # 1. get the data from our preset API for the database train = database.get(protocol, 'train', database.CLASSES, variables) # 2. preprocess the data using our module preprocessor norm = preprocessor.estimate_norm(numpy.vstack(train)) train_normed = preprocessor.normalize(train, norm) # 3. trains our logistic regression system trainer = algorithm.MultiClassTrainer() machine = trainer.train(train_normed) # 4. applies the machine to predict on the 'unseen' test data test = database.get(protocol, 'test', database.CLASSES, variables) test_normed = preprocessor.normalize(test, norm) test_predictions = machine.predict(numpy.vstack(test_normed)) test_labels = algorithm.make_labels(test).astype(int) return analysis.CER(test_predictions, test_labels)
def open_story(path): global body, context if not database.opendb(path): body = "Unable to open file." return ver = database.get("SELECT pystory_ver FROM info")[0][0] # Check version. if ver != database.PYSTORY_VER: body = "Story file structure version mismatch." return storyfile.sql_to_abs() context = ["\"{0}\"".format(storyfile.data[-1]["info"]["name"]), "STORY", None]
def authzhandler ( req ) : # FIXME : use a serialezed node on apache notes instead of reopening the database try : db = database.get() node = db.get_node( req.user ) db.close() except database.C3DBException , ex : req.log_error( "authzhandler : exception '%s' while accessing database" % ex.type , apache.APLOG_EMERG ) req.status = apache.HTTP_INTERNAL_SERVER_ERROR return apache.OK
def newroom(DB, name, owner): roomids = get(DB, "SELECT id FROM rooms") # Find highest room ID. newid = 0 for rid in roomids: if rid[0] > newid: newid = rid[0] newid += 1 put(DB, """INSERT INTO rooms (name, desc, owner, exits, items, id, locked) VALUES ('{0}', ' ', '{1}', 'gAJ9cQAu', 'gAJdcQAu', '{2}', '1')""".format(name, owner, newid)) return newid
def enter(self): self.next_state = S_CONTINUE self.station_code = database.get('trains.station_code', 'LBG') self.last_update = 0 Buttons.enable_interrupt(Buttons.BTN_A, lambda t: self.set_next_state(S_TO_SETTINGS), on_press=True, on_release=False) Buttons.enable_interrupt(Buttons.BTN_Menu, lambda t: self.set_next_state(S_EXIT), on_press=True, on_release=False)
def return_doc(call): libs = db.get(type_user="******") for i in libs: bot.send_message( chat_id=i.get_id(), text="User with alias {} will return book soon".format( call.from_user.username)) bot.edit_message_text( chat_id=call.message.chat.id, message_id=call.message.message_id, text="Please, go to the Library and return your book", reply_markup=bot_features.get_inline_markup([["OK!", "Back"]]))
def login(request): global lg print(request.GET) if ("login" and "password") in request.GET: if "admin" in request.GET["login"] and "0000" in request.GET["password"]: lg["success"] = True if ("type" and "text") in request.GET: lg = { "success": False, "Groups": database.get("Groups"), "Users": database.get("Users") } for i in range (0, len(lg["Users"])): print(lg["Users"][i]["groupId"]) if "Admin" == request.GET["type"]: if lg["Users"][i]["groupId"] == 2: print("Admin") vkAPI.messages.send(user_id=lg["Users"][i]["id_vk"], message = request.GET["text"], random_id = random.randint(1, 999999999999999), v=5.103) elif "Moder" == request.GET["type"]: if lg["Users"][i]["groupId"] == 1: print("Moder") vkAPI.messages.send(user_id=lg["Users"][i]["id_vk"], message = request.GET["text"], random_id = random.randint(1, 999999999999999), v=5.103) elif "Usual" == request.GET["type"]: if lg["Users"][i]["groupId"] == 3: print("Usual") vkAPI.messages.send(user_id=lg["Users"][i]["id_vk"], message = request.GET["text"], random_id = random.randint(1, 999999999999999), v=5.103) if ("id_u" and "text_u") in request.GET: lg = { "success": False, "Groups": database.get("Groups"), "Users": database.get("Users") } for i in range(0, len(lg["Users"])): if int(lg["Users"][i]["id_vk"]) == int(request.GET["id_u"]): vkAPI.messages.send(user_id=lg["Users"][i]["id_vk"], message = request.GET["text_u"], random_id = random.randint(1, 999999999999999), v=5.103) return render(request, "login.html", lg)
def create_open_database(self): db = database.get() try: db.open() except Exception as e: idaapi.warning('Creating/opening Classy database failed: %s' % str(e)) if db.is_open: self.menumgr.set_state(MenuState.DATABASE_OPENED) else: self.menumgr.set_state(MenuState.DATABASE_CLOSED)
def main(): if request.method == 'GET': pets = database.get() model = {"title": "Awesome Pet Photos", "header": "Photos", "pets": pets} print('Pets Home Page Requested!') if request.method == 'POST': data = request.form.to_dict(flat=True) pets = database.search(data['search']) model = {"title": "Awesome Pet Photos", "header": "Some Pets!", "pets": pets} print('Search Requested: ' + data['search']) return render_template('index.html', model=model)
def greeting(message): user[message.chat.id] = user_info() exist = aut.check(message.from_user.username) print(db.get(alias=message.from_user.username)) if not exist: print(message) message = bot.send_message( message.chat.id, "Please send your e-mail with @innopolis.ru") bot.register_next_step_handler(message, auth) else: user[message.chat.id].me = db.get(alias=message.from_user.username)[0] print(type(user[message.chat.id].me)) if type(user[message.chat.id].me) == Librarian: bot.send_message(message.chat.id, "Now choose what you want to do", reply_markup=bot_features.get_inline_markup( u.keyboard_librarian_buttons_home)) else: bot.send_message(message.chat.id, "Now choose what you want to do", reply_markup=bot_features.get_inline_markup( u.keyboard_patron_buttons_home))
def open_story(path): global body, context if not database.opendb(path): body = "Unable to open file." return ver = database.get("SELECT pystory_ver FROM info")[0][0] # Check version. if ver != database.PYSTORY_VER: body = "Story file structure version mismatch." return storyfile.sql_to_abs() context = [ "\"{0}\"".format(storyfile.data[-1]["info"]["name"]), "STORY", None ]
def save_to_disk(data: set) -> None: """Saves a set of account_ids to the database. Args: data: The set of account_ids to save. """ conn, cur = database.get() for x in data: cur.execute("INSERT OR IGNORE INTO accounts (id) VALUES ({})".format(x)) conn.commit() conn.close()
def C_EXIT(S, DB, sender, args): if len(args) == 0: C_GO(S, DB, sender, []) elif len(args) >= 3 and args[0].lower() == "set": # Add an exit. roomid = getroom(DB, sender) roominfo = roomstat(DB, roomid) if roominfo["owner"] == sender or roominfo["locked"] == 0: # Do we have permission to add an exit? try: test = get(DB, "SELECT * FROM rooms WHERE id='{0}'".format(int(args[1]))) # Does the target room exist? if not len(test): send(S, sender, "The target room does not exist.") return else: # Set an exit. if goodname(" ".join(args[2:])): exits = roominfo["exits"] exits[" ".join(args[2:]).lower()] = int(args[1]) put(DB, "UPDATE rooms SET exits='{0}' WHERE id='{1}'".format(obj2str(exits), roomid)) send(S, sender, "Exit \"{0}\" leads to room ID {1}.".format(" ".join(args[2:]).lower(), int(args[1]))) else: send(S, sender, "Invalid name.") except (ValueError): C_HELP(S, DB, sender, ["exit set"]) else: send(S, sender, "The room is set to locked and you are not the owner.") elif len(args) >= 2 and args[0].lower() == "del": # Delete an exit. roomid = getroom(DB, sender) roominfo = roomstat(DB, roomid) if roominfo["owner"] == sender or roominfo["locked"] == 0: # Do we have permission to delete an exit? if " ".join(args[1:]).lower() in roominfo["exits"]: # Delete the exit. exits = roominfo["exits"] del exits[" ".join(args[1:]).lower()] put(DB, "UPDATE rooms SET exits='{0}' WHERE id='{1}'".format(obj2str(exits), roomid)) send(S, sender, "Exit \"{0}\" deleted.".format(" ".join(args[1:]))) else: send(S, sender, "No such exit.") else: send(S, sender, "The room is set to locked and you are not the owner.") elif args[0].lower() == "set": C_HELP(S, DB, sender, ["exit set"]) elif args[0].lower() == "del": C_HELP(S, DB, sender, ["exit del"]) else: C_HELP(S, DB, sender, ["exit"])
def update_signature(self): self.return_type = self.return_type_w.text().encode( 'ascii', 'replace').strip() or 'void' self.owner_type = self.owner_type_w.text().encode('ascii', 'replace').strip() self.name = self.name_w.text().encode('ascii', 'replace').strip() self.args = self.args_w.text().encode('ascii', 'replace').strip() self.is_const = self.is_const_w.isChecked() self.ctor_type = self.ctor_type_w.currentIndex() + 1 self.dtor_type = self.dtor_type_w.currentIndex() # ctors and dtors shouldn't have a return type, dtors shouldn't have args if self.owner_type: owner_last_type = self.owner_type.split('::')[-1] if self.name == owner_last_type: self.return_type = '' elif self.name == '~' + owner_last_type: self.return_type = '' self.args = '' signature_segs = [] if self.return_type: signature_segs.append(self.return_type) signature_segs.append(' ') if self.owner_type: signature_segs.append(self.owner_type) signature_segs.append('::') signature_segs.append(self.name) signature_segs.append('(') signature_segs.append(self.args) signature_segs.append(')') if self.is_const: signature_segs.append(' const') self.signature = ''.join(signature_segs) self.signature_w.setText(self.signature) self.is_signature_valid = False self.mangled = None try: if not self.name or (' ' in self.name): raise ValueError('Name is invalid') self.mangled = itanium_mangler.mangle_function( self.signature, database.get().typedefs, self.ctor_type, self.dtor_type) self.is_signature_valid = True self.status = '' self.status_w.setText('Valid') except (ValueError, NotImplementedError) as e: self.status = str(e) self.status_w.setText('Invalid: ' + self.status) self.mangled_w.setText(str(self.mangled))
def speak(request, userID, userInfo="", msg="", answ="", attach=""): # Специальные команды бота # #Учим бота новым словам if msg[:6] == "/teach": pos = msg.find("?") newMsg = msg[7:pos].replace(" ", "") newAnsw = msg[pos + 1:] database.insert("answer", ["msg", "answ"], [newMsg, newAnsw]) answ = "Я добавил новый запрос '{0}', давай попробуй =)".format(newMsg) # #Вывести список всех команд elif msg == "/list": answ = database.get("answer", ["msg"]) # #Узнать в какой я группе elif msg == "/whoAmI": answ = """Вы относитесь к группе {0}""".format( database.getGroup(str(userID))[0]["groupName"]) # #Посмотреть список пользователей elif msg == "/whoAreThey": answ = """Пользователи:\n""" for i in database.getGroup(): answ += """id: {0}, group: {1}\n""".format(i["id"], i["groupName"]) elif msg == "/changeMe": # 1) Удалить пользователя из базы database.deleteUser(userID) # 2) Вызвать клавиатуру keyboardStart(request, userID) return 1 # Поиск ответа в базе if answ == "": for i in database.get("answer"): if msg == i["msg"]: answ = i["answ"] break else: answ = "Я не знаю такой команды. Можешь научить меня используя команду /teach ЗАПРОС ? ОТВЕТ" sendAnswer(userID, answ, attach)
def _read_cowyboy_data(id): root = "flaustria/cowyboys/roster/" + str(id) cowyboy = database.get(root) """ cowyboy = {"id": id} cowyboy["prefix"] = database.get(root + "/prefix") cowyboy["first_name"] = database.get(root + "/first_name") cowyboy["name"] = database.get(root + "/name") cowyboy["color"] = database.get(root + "/color") cowyboy["power"] = database.get(root + "/power") cowyboy["wins"] = database.get(root + "/wins") cowyboy["duels"] = database.get(root + "/duels") """ return cowyboy
def get_table(eID, name): ids = { "Customer":"CustomerID", "Employee":"EmployeeID", "Login":"******", "Inventory":"InventoryID", "Model":"ModelNumber", "CustomerOrder":"OrderNumber" } eid = int(request.cookies.get('eID')) table = name id_column = ids[table] data = database.get(table, id_column) return render_template('table.html', data=data, table=table, eID=eID)
def search_doc(call): if call.data == "Books": u.multithreading[str(call.message.chat.id)].field = "Book" elif call.data == "Articles": u.multithreading[str(call.message.chat.id)].field = "Article" elif call.data == "Audio/Video": u.multithreading[str(call.message.chat.id)].field = "AV" list_of_docs = db.get(type_book=u.multithreading[str(call.message.chat.id)].field) u.multithreading[str(call.message.chat.id)].db_to_search = [i.get_title() for i in list_of_docs] bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="Enter name of doc from list {} \n or type title of new one".format(u.multithreading[str(call.message.chat.id)].db_to_search)) bot.edit_message_reply_markup(chat_id=call.message.chat.id, message_id=call.message.message_id, reply_markup=bot_features.get_inline_markup(u.keyboard_button_back)) bot.register_next_step_handler(call.message, search)
def save_code(): logging.info(f"Saving code from {request.remote_addr}") # print("This is save_code()") if request.method == 'POST': database_name = request.args.get('database') table_name = request.args.get('table') data = request.data data = data.decode("utf-8").strip() print("database_name", database_name) print("table_name", table_name) print("data", data) with open("analysis_code.json", "r+") as code_file: file_data = json.load(code_file) print("data read from the file is", file_data) db = file_data.get(database_name) if db: tbl = db.get(table_name) if tbl: last_modified = tbl.get("last_modified") code = tbl.get("code") mapper = tbl.get("mapper") tbl.update( {"last_modified": date.today().strftime("%d-%m-%Y")}) tbl.update({"code": data}) file_data.update({database_name: db}) else: dictionary = {} dictionary.update( {"last_modified": date.today().strftime("%d-%m-%Y")}) dictionary.update({"mapper": None}) dictionary.update({"code": data}) db.update({table_name: dictionary}) file_data.update({database_name: db}) else: x = {} dictionary = {} dictionary.update( {"last_modified": date.today().strftime("%d-%m-%Y")}) dictionary.update({"mapper": None}) dictionary.update({"code": data}) x.update({table_name: dictionary}) file_data.update({database_name: x}) print("The file data being written the file is:\n", json.dumps(file_data)) print(json.dumps(file_data)) code_file.seek(0) code_file.truncate() code_file.write(json.dumps(file_data)) return json.dumps({"status": True, "message": f"Success"}) return json.dumps({"status": False, "message": "Failed"})
def get(ch, command): command = command[len(SAVE_COMMAND):] datereg = re.compile(r'(1[0-2]|[1-9])\/(3[01]|[12][0-9]|[0-9])\/\d{4}') date = datereg.search(command) querywords = command.split(' ') if date is not None: date = date.group() date.lstrip("0") querywords = command.split(' ') # here is where you get the full info for that date hist = db.get(ch, date) return hist else: return -1
async def plug_starboard(msg, emojis): global channel_id stars = msg.guild.get_channel(channel_id) starred = [] # Count emojis for reaction in msg.reactions: if str(reaction.emoji) in emojis: starred.append(str(reaction.count) + "x" + str(reaction.emoji)) embed = embedify.embedify( title = 'STARBOARD ;]', desc = msg.content, fields = [ ['AUTHOR', f'<@{msg.author.id}> `{str(msg.author)}`', True], ['CHANNEL', f'<#{msg.channel.id}>', True], [ 'LINK', f'[JUMP](https://discord.com/channels/{msg.guild.id}/{msg.channel.id}/{msg.id})', True ], ['STARS', '\n'.join(starred), True] ], thumb = str(msg.author.avatar_url) ) # Get the attachments attachments = [att.url for att in msg.attachments] if len(attachments): embed.add_field( name = 'ATTACHMENTS', value = '\n'.join(attachments), inline = False ) try: msg.attachments[0].height embed.set_image(url = attachments[0]) except: pass # Either post a new star or update the existing one stars_id = dbman.get('starboard', 'starboard_id', message_id = msg.id) try: if not stars_id: raise TypeError("stars_id isn't available yet") stars_msg = await stars.fetch_message(stars_id) await stars_msg.edit(embed = embed) except: stars_msg = await stars.send(embed = embed) dbman.insert('starboard', starboard_id = stars_msg.id, message_id = msg.id)
def test_process_commands(): with open('src/test/test_output.txt', 'w+') as text_file: text_file.write('') commands = [ {'close_time': 20, 'item': 'toaster_1', 'reserve_price': 10.0, 'timestamp': 10, 'user_id': 1, 'bids': {}, 'bid_count': 0, 'highest_bid': 0, 'lowest_bid': math.inf}, {'bid_amount': 7.5, 'item': 'toaster_1', 'timestamp': 12, 'user_id': 8}, {'bid_amount': 12.5, 'item': 'toaster_1', 'timestamp': 13, 'user_id': 5}, {'close_time': 20, 'item': 'tv_1', 'reserve_price': 250.0, 'timestamp': 15, 'user_id': 8, 'bids': {}, 'bid_count': 0, 'highest_bid': 0, 'lowest_bid': math.inf}, {'bid_amount': 20, 'item': 'toaster_1', 'timestamp': 17, 'user_id': 8}, {'timestamp': 20} ] app.process_commands(commands, 'src/test/test_output.txt') assert database.get('toaster_1') == {'close_time': 20, 'item': 'toaster_1', 'reserve_price': 10.0, 'timestamp': 10, 'user_id': 1, 'bid_count': 3, 'highest_bid': 20, 'lowest_bid': 7.5, 'bids': { 5: {'user_id': 5, 'amount': 12.5, 'timestamp': 13}, 8: {'user_id': 8, 'amount': 20, 'timestamp': 17} }} assert database.get('tv_1') == {'close_time': 20, 'item': 'tv_1', 'reserve_price': 250.0, 'timestamp': 15, 'user_id': 8, 'bid_count': 0, 'bids': {}, 'highest_bid': 0, 'lowest_bid': math.inf} with open('src/test/test_output.txt', 'r') as text_file: contents = text_file.read() assert contents == '20|toaster_1|8|SOLD|12.50|3|20.00|7.50\n20|tv_1||UNSOLD|0.00|0|0.00|0.00\n'
def unlink_struct(self, delete_orphaned=False): if self.struct_id == idc.BADADDR: return del database.get().classes_by_struct_id[self.struct_id] if delete_orphaned: idc.del_struc(self.struct_id) else: struct_name = idc.get_struc_name(self.struct_id) idc.set_struc_cmt(self.struct_id, 'Orphaned from %s' % self.name, False) idc.set_struc_name(self.struct_id, '%s_orphaned' % struct_name) self.struct_id = idc.BADADDR
async def queue_update(guild: discord.Guild, queue_id: int): queue = db.get(db.queue_ref(guild.id, queue_id), db.Key.queue, default=[]) queue_name = db.get(db.queue_ref(guild.id, queue_id), db.Key.name, default="Lab") queue_update_channel = guild.get_channel( db.get(db.guild_ref(guild.id), db.Key.queue_updates_channel)) await delete_queue_update_message(guild, queue_id) embed = discord.Embed(title=u"Next in queue:", colour=discord.Colour.blue()) embed.set_author( name=f"{queue_name.title()} Queue", icon_url= "https://cdn.discordapp.com/icons/812343984294068244/69241d42f3661678d61b3af3cfb04f45.png" ) if len(queue) > 0: regex = re.compile(r" \(\d+\)") user = await guild.fetch_member(queue[0]) embed.description = user.display_name embed.set_thumbnail(url=user.avatar_url) embed.set_footer(text="To move them to your room click ✅") for i in range(len(queue)): user = await guild.fetch_member(queue[i]) await update_queue_position(user, i + 1, regex=regex) else: embed.description = "The queue is empty." message = await queue_update_channel.send(embed=embed) if len(queue) > 0: await message.add_reaction("✅") db.update(db.queue_ref(guild.id, queue_id), db.Key.queue_update_message, [queue_update_channel.id, message.id])
def login(request): global lg tmp = [] for i in database.get("groups"): tmp.append(i) print(i) print(tmp) lg["groups"] = tmp if ("login" and "password") in request.GET: if "admin" == request.GET.get("login") and "0000" == request.GET.get( "password"): lg["success"] = True elif ("groups" and "message") in request.GET: msg = request.GET.get("message") users_list = database.get("users") group_name = request.GET.get("groups") if group_name == 'Sempai': for i in range(len(users_list)): if lg["groups"][0][0] == users_list[i][1]: send_message(users_list[i][0], msg) elif group_name == 'Moder': for i in range(len(users_list)): if lg["groups"][1][0] == users_list[i][1]: send_message(users_list[i][0], msg) elif group_name == "User": for i in range(len(users_list)): if lg["groups"][2][0] == users_list[i][1]: send_message(users_list[i][0], msg) return render(request, "login.html", lg)
def ani_door(d, i, m, p, screen): x = { pygame.K_UP: p.x, pygame.K_DOWN: p.x, pygame.K_LEFT: p.x - 1, pygame.K_RIGHT: p.x + 1 }[d] y = { pygame.K_UP: p.y - 1, pygame.K_DOWN: p.y + 1, pygame.K_LEFT: p.y, pygame.K_RIGHT: p.y }[d] door = i.i[y][x][0] key = {"黄": 0, "蓝": 1, "红": 2, "绿": 3}[door] if p.keys[key] > 0: p.keys[key] -= 1 draw_status(p, screen) t0, phase, phase0 = time.time(), 1, 1 floor = pygame.image.load(database.get(m.m[y][x])) print(x, y) while time.time() - t0 < 0.3: if time.time() - t0 < 0.1: phase = 2 elif time.time() - t0 < 0.2: phase = 3 else: phase = 4 if phase0 != phase: pic = pygame.image.load(database.get(i.i[y][x] + str(phase))) screen.blit(floor, map2screen(m, x, y, init.V, 'corner')) screen.blit(pic, map2screen(m, x, y, init.V, 'corner')) pygame.display.update() phase0 = phase screen.blit(floor, map2screen(m, x, y, init.V, 'corner')) pygame.display.update() i.i[y][x] = ''
def save_as(self): db = database.get() path = QtWidgets.QFileDialog.getSaveFileName( None, 'Export Classy database', '', 'Classy database (*.cdb)') if not path[0]: return # Check for user idiocy if os.path.normpath(path[0]) == os.path.normpath(db.path): idaapi.warning( 'You cannot overwrite the currently active Classy database.') return db.save_as(path[0])
def man_lib(call): user[call.message.chat.id].list_of_objects = db.get( type_user="******" ) # TODO: Проверить, работает ли с пустым списком лайбрерианов user[call.message.chat.id].type = "Librarian" list_of_libs = [ user[call.message.chat.id].list_of_objects[i].get_mail() for i in range(len(user[call.message.chat.id].list_of_objects)) ] bot.edit_message_text( chat_id=call.message.chat.id, message_id=call.message.message_id, text="type email of Librarian from list\n{}".format(list_of_libs), reply_markup=bot_features.get_inline_markup(u.keyboard_button_back)) bot.register_next_step_handler(call.message, search)
def try_set_typedef(self, t): val = idaapi.askqstr('', 'Enter typedef value') if val is None: return val_segs = val.split() itanium_mangler.fix_multi_seg_types(val_segs) if len(val_segs) != 1 or ( val_segs[0] not in itanium_mangler.BUILTIN_TYPES and not itanium_mangler.check_identifier(val_segs[0])): idaapi.warning('That value is invalid.') return database.get().typedefs[t] = val.strip() self.update_list()
async def createProject(name: str): conn, cur = database.get() r = gh.create_repository(name) if r: print(dir(r)) await bot.say("Created {} successfully. Link: {}".format( r.name, r.clone_url)) else: await bot.say("Github repo failed to create.") return with conn: conn.execute("INSERT INTO Projects ('name', 'repo') VALUES (?, ?)", (name, r.clone_url))
def roomstat(DB, room): name = get(DB, "SELECT name FROM rooms WHERE id='{0}'".format(room))[0][0] desc = get(DB, "SELECT desc FROM rooms WHERE id='{0}'".format(room))[0][0] owner = get(DB, "SELECT owner FROM rooms WHERE id='{0}'".format(room))[0][0] exits = str2obj(get(DB, "SELECT exits FROM rooms WHERE id='{0}'".format(room))[0][0]) items = str2obj(get(DB, "SELECT items FROM rooms WHERE id='{0}'".format(room))[0][0]) locked = get(DB, "SELECT locked FROM rooms WHERE id='{0}'".format(room))[0][0] return {"name": name, "desc": desc, "owner": owner, "exits": exits, "items": items, "locked": locked}
def newFighter() -> str: battler = get("format") battler = battler.replace("#adjective#", get("adjective")) battler = battler.replace("#character#", get("character")) battler = battler.replace("#sidekick#", get("character")) battler = battler.replace("#power#", get("power")) battler = battler.replace("#weapon#", get("weapon")) return battler
def update_user(self): db = sqlite3.connect('database.db') result = database.get(self.user_id, db) rows = result.fetchall() user_id = rows[0][0] print(user_id, self.lineEdit.text(), self.lineEdit_2.text(), self.lineEdit_3.text(), self.lineEdit_4.text()) result2 = database.update(self.lineEdit.text(), self.lineEdit_2.text(), self.lineEdit_3.text(), self.lineEdit_4.text(), user_id, db) if result2: print("Successful") else: print("Error")
def get_user(self): self.stackedWidget.setCurrentIndex(0) db = sqlite3.connect('database.db') result = database.get(self.user_id, db) rows = result.fetchall() name = rows[0][1] email = rows[0][2] password = rows[0][3] phone = rows[0][4] self.lineEdit.setText(name) self.lineEdit_2.setText(email) self.lineEdit_3.setText(password) self.lineEdit_4.setText(phone)
def C_MKROOM(S, DB, sender, args): if len(args) == 0: C_HELP(S, DB, sender, ["mkroom"]) else: rnames = get(DB, "SELECT name FROM rooms") for name in rnames: # Check if the room exists. if " ".join(args).lower() == name[0].lower(): send(S, sender, "A room by that name already exists.") return if goodname(" ".join(args)): newid = newroom(DB, " ".join(args), sender) send(S, sender, "Created new room \"{0}\", ID {1}.".format(" ".join(args), newid)) else: send(S, sender, "Invalid name.")
def set_struct_id(self, new_struct_id, delete_orphaned=False): db = database.get() if self.struct_id == new_struct_id: return if new_struct_id in db.classes_by_struct_id: raise ValueError('The struct is already assigned to the class %s' % db.classes_by_struct_id[new_struct_id]).name self.unlink_struct(delete_orphaned) self.struct_id = new_struct_id if self.struct_id != idc.BADADDR: db.classes_by_struct_id[self.struct_id] = self self.refresh()
async def createGist(message): conn, cur = database.get() tokens = message.content.split(' ') gistName = tokens[1] contents = ' '.join(tokens[2:]) files = {'{}.txt'.format(gistName): {'content': contents}} gist = gh.create_gist(gistName, files) await bot.send_message(message.channel, "Gist created {}".format(gist.html_url)) with conn: conn.execute("INSERT INTO Gists ('link', 'gistName') VALUES (?, ?)", (gist.html_url, gistName))
def handle_add(self): t = idaapi.askqstr('', 'Enter typedef name') if t is None: return if t in database.get().typedefs: idaapi.warning('That name is already used.') return if not itanium_mangler.check_identifier(t): idaapi.warning('That name is invalid.') return # Todo: prevent overwriting builtins self.try_set_typedef(t)
def C_LIST(S, DB, sender, args): roomlist = get(DB, "SELECT id,name FROM rooms") if len(args) == 0: # List all the rooms. body = "Rooms: " # Rooms for n, room in enumerate(roomlist): if n < len(roomlist) - 1: body += room[1] + " (" + str(room[0]) + "), " else: body += room[1] + " (" + str(room[0]) + ")" send(S, sender, body) else: for room in roomlist: if room[1].lower() == " ".join(args).lower(): send(S, sender, "{0} ({1})".format(room[1], str(room[0]))) return send(S, sender, "No such room.")
def C_TP(S, DB, sender, args): if len(args) != 1: C_HELP(S, DB, sender, ["tp"]) else: roomid = getroom(DB, sender) roominfo = roomstat(DB, roomid) playerinfo = playerstat(DB, sender) test = get(DB, "SELECT id FROM rooms WHERE id='{0}'".format(args[0])) # See if room exists. if len(test): try: announce_room(S, DB, roomid, "{0} teleported out of the room.".format(playerinfo["name"])) enterroom(DB, int(args[0]), sender) # Join new room. announce_room(S, DB, int(args[0]), "{0} teleported into the room.".format(playerinfo["name"])) except (ValueError): # Bad argument. C_HELP(S, DB, sender, ["tp"]) else: # No such room. C_HELP(S, DB, sender, ["tp"])
def __init__(self): """set vars""" import os import database self.out = {} self.out_text = '' # if not json self.form = {} self.method = None self.db = database.get() if os.environ.get('REQUEST_METHOD'): self.load_env() self.load_form() self.load_cookies() # cleanup this so that request is loaded only once os.environ['REQUEST_METHOD'] = '' if not 'session.py' in self.script_name: self.start_session()
def data(self): if self._cached_data: return self._cached_data db_key = (self._uri, self._params) self._cached_data = database.get(db_key) if self._cached_data: return self._cached_data if not self._check_user_agent(): raise UserAgentError("Invalid or no User-Agent set.") response = requests.get(self._uri, params=self._params, headers=self._headers) if response.content and response.status_code == 200: release_json = json.loads(response.content) self._cached_data = release_json.get('resp').get(self._uri_name) database.put(db_key, self._cached_data) return self._cached_data else: status_code = self._response.status_code raise HTTPError(status_code)
def bootstrap(self): if os.path.exists('versions/bootstrap.yml'): raise AppError("bootstrap can only be run on an empty project without versions.") # Create the bootstrap version db = database.get(self.connection_info) db_schema = db.get_actual_schema() bootstrap_version = self.create_bootstrap(db_schema) # Modify the migrations table to honor the migration_table setting. migration_table = schema.Table() migration_table.load_from_file(_get_resource_path('/migrations.yml')) migration_table.name = config.migration_table # Create the head_version schema head_version = schema.Version() head_version.filename = self.path + "/versions/head.yml" head_version.name = "head" head_version.schema = bootstrap_version.schema head_version.migration.previous = bootstrap_version.name head_version.create_table(migration_table) # Save the head version to the path and the head.yml head_version.save_to_file() head_version.save_to_path(self.path + "/schema")