def selectTable(self, event): # Get selected tree item Id = self.treeviewTablesAndViews.Id # Get corresponding info from database data = database.getData(self.connectionStringMeta, "Select * From Tables Where Id = " + Id)
def remove(message_id, channel_id): """ Removes message from database Parameters: message_id (int): The ID of the message channel_id (int): The channel ID Returns: None """ #remove it in message list inside database data = database.getData() for i in data['messages']: if int(i['message_id']) == int(message_id): data['messages'].remove(i) break #remove it in channel for j in data['channels']: if int(j['channel_id']) == int(channel_id): for x in j['messages']: if int(x['message_id']) == int(message_id): j['messages'].remove(x) break database.update_database(data) return {}
def showGraph(self, event=None): # Get the data connectionStringData = self.metadata.ConnectionString[0] query = self.metadata.SQL_Data[0] self.data = database.getData(connectionStringData, query) # Show the data in the table self.pyTable.addDataframe(dataframe=self.data) # Determine X-variable X_variable = self.metadata.X_variable[0].strip() # Determine Y-variables if self.metadata.ColumnName[0] != None: Y_variable = [] # Get all defined Y-variables for i in self.metadata.index: Y_variable.append(self.metadata.ColumnName[i].strip()) else: # Get all numerical columns Y_variable = self.data._get_numeric_data().columns # Show the data in the graph for i in self.metadata.index: Y_variable = self.metadata.ColumnName[i].strip() cmd = 'self.ax.plot(self.data.' + X_variable + ', self.data.' + Y_variable + ', label = "' + Y_variable + '")' print(cmd) eval(cmd) # Add Title self.ax.set_title(self.treeviewGraphs.FullTitle()) # Add xlabel self.ax.set_xlabel(X_variable) # Add legend #self.ax.legend(['test1','test2']) self.ax.legend(self.metadata.ColumnName) # Refresh self.canvas.draw()
def check_in_channel(user_id, channel_id): """ Checks if user is in channel Parameters: user_id (int): The ID of the user channel_id (int): The channel ID Returns: 0 stands for the channel id is valid and the user is in the channel 1 stands for user is not in the channel 2 stands for invalid channel id """ data = database.getData() found_channel = 0 found_user = 0 for i in data['channels']: if int(i['channel_id']) == int(channel_id): found_channel = 1 #print(i) for x in i['details']['all_members']: if int(x['u_id']) == int(user_id): found_user = 1 # 0 stands for the channel id is valid and the user is in the channel # 1 stands for user is not in the channel # 2 stands for invalid channel id if found_user == 1 and found_channel == 1: return 0 elif found_channel == 1 and found_user == 0: return 1 return 2
def check_access(user_id, channel_id, message_id): """ Checks if user is in sender or owner Parameters: user_id (int): The ID of the user channel_id (int): The channel ID message_id (int): The ID of the message Returns: bool : True or False if valid """ data = database.getData() sender = 0 owner = 0 #check whether user_id is the sender of the message for channel in data['channels']: if int(channel['channel_id']) == int(channel_id): for x in channel['messages']: if int(x['message_id']) == int(message_id): if int(x['u_id']) == int(user_id): sender = 1 break for ch in data['channels']: if int(ch['channel_id']) == int(channel_id): for owner in ch['details']['owner_members']: if int(owner['u_id']) == int(user_id): owner = 1 break return sender == 1 or owner == 1
def get_school_news(school): if school not in schoolList.keys(): return "no message" datas = database.getData(school) return render_template('newsList.html', datas=datas, schoolName=schoolList[school])
def __init__(self, parent): top = self.top = Toplevel(parent) frame = Frame(top) frame.pack() data = getData() for index, eachData in enumerate(data): for key, val in eachData.items(): EditRow(frame, val, index, data, self)
def findQuery(self): # Ask new text queryName = simpledialog.askstring( "Find query", "Query name?", initialvalue=self.entryQueryName.get(), parent=self) query = "Select Id From Queries Where QueryName = '" + queryName + "'" data = database.getData(self.connectionStringMeta, query) self.treeviewQueries.selectItem(data.Id[0])
def login(username="", password=""): database = db.getData() for i in database: user = database[i] uid = user["username"] pwd = user["password"] if (username == uid and password == pwd): print("Berhasil Login sebagai user ", username) return user print("User tidak ditemukan") return None
def history(): # temp data for storing results one = 0 two = 0 three = 0 four = 0 # temp data for storing percentage onePercent = 0 twoPercent = 0 threePercent = 0 fourPercent = 0 # gets result number from mySQL myresult = getData() # gets all result numbers and stores into local var for i in myresult: result = int(i[0]) if result == 1: one = one + 1 elif result == 2: two = two + 1 elif result == 3: three = three + 1 elif result == 4: four = four + 1 rows = len(myresult) # calculates percentages if one != 0: onePercent = f"{100 / rows * one:,.2f}" if two != 0: twoPercent = f"{100 / rows * two:,.2f}" if three != 0: threePercent = f"{100 / rows * three:,.2f}" if four != 0: fourPercent = f"{100 / rows * four:,.2f}" results = [one, two, three, four] percentages = [onePercent, twoPercent, threePercent, fourPercent] conditions = [ "Won by switching", "Won by not switching", "Lost by switching", "Lost by not switching" ] return render_template("results.html", conditions=conditions, results=results, percentages=percentages)
def get_msg_id(): """ Generate a message ID Parameters: None Returns: message_id(int): The ID for the new message """ data = database.getData() if not data['messages']: return 1 return data['messages'][-1]['message_id'] + 1
def runQuery(self, event=None): # Get query self.query = self.textQuery.get(1.0, tk.END) # Define global variable global data # Try to get the data try: data = database.getData(self.connectionStringData, self.query) # Fill the table self.pyTable.addDataframe(dataframe=data) # Show the table self.checkData.set(1) self.showData() except: messagebox.showerror("getData failed", sys.exc_info()[1])
def refreshTree(self, id=None, next=0): # Clear existing content in treeview self.treeview.delete(*self.treeview.get_children()) # Write query to get tree data query = "Select * From " + self.table + " Where Status = 'A' " if self.filterColumn != None: query += " And " + self.filterColumn + " = " + self.filterId query += " Order By [Level], Nr" # Execute query to and get the data treedata = database.getData(self.connectionString, query) # Fill tree for i in treedata.index: if (i == 0) | (treedata.ParentId[i] == 0): self.treeview.insert('', treedata.Nr[i] - 1, iid=treedata.Id[i], text=treedata.Title[i].strip()) else: self.treeview.insert(treedata.ParentId[i], treedata.Nr[i] - 1, iid=treedata.Id[i], text=treedata.Title[i].strip()) # If the tree has items if treedata.Id.count() > 0: # Select the given id if id != None: # If we should show the next item if next == 1: # Get the id of the next item id = self.treeview.next(id) elif next == -1: # Get the id of the previous item id = self.treeview.prev(id) # Make sure that item is visible self.treeview.see(id) # Select item in tree self.treeview.selection_set(id) # Set focus on the item self.treeview.focus(id) else: # Open first treeview item self.treeview.item(treedata.Id[0], open=True)
def selectGraph(self, event): # Get selected tree item self.Id = self.treeviewGraphs.Id # Get corresponding info from database query = "Select * From Graphs Where Id = " + self.Id query = ('''SELECT A.[Id] ,A.[Status] ,A.[ParentId] ,A.[Level] ,A.[Nr] ,RTrim(A.[Title]) As Title ,A.[QueryId] ,RTrim(B.[QueryName]) As QueryName ,A.[GraphType] ,A.[Y_max] ,A.[Y_min] ,A.[Autoscale_Y] ,A.[Autoscale_X] ,A.[Interval_min] ,A.[Interval_max] ,A.[Interval_count] ,A.[Box] ,A.[Whisker] ,RTrim(A.[X_variable]) As X_variable ,RTrim(D.[ColumnName]) As ColumnName ,RTrim(A.[ColorBy]) As ColorBy ,A.[Regression] ,RTrim(A.[UserId]) As UserId ,A.[TimeChanged] ,B.[SQL_Data] ,B.[SQL_Parameters] ,B.[AutoFetchParameters] ,C.[DatabaseId] ,CASE WHEN C.[User] = '' THEN 'DRIVER={' + Rtrim(C.Driver) + '};Server=' + Rtrim(C.Server) + ';Database=' + Rtrim(C.[Database]) + ';Trusted_Connection=yes;' ELSE 'DRIVER={' + Rtrim(C.Driver) + '};Server=' + Rtrim(C.Server) + ';Database=' + Rtrim(C.[Database]) + ';UID=' + Rtrim(C.[User]) + ';PWD=' + Rtrim(C.[Password]) END As ConnectionString FROM [Metadata].[dbo].[Graphs] A LEFT OUTER JOIN [Metadata].[dbo].[Y_variables] D ON D.[ID] = A.[ID] , [Metadata].[dbo].[Queries] B , [Metadata].[dbo].[Connections] C WHERE A.[QueryName] = B.[QueryName] AND B.[Status] = 'A' AND B.[ConnectionId] = C.Id AND C.[Status] = 'A' AND A.[ID] = ''' + self.Id) # Get the metadata self.metadata = database.getData(self.connectionStringMeta, query)
def initial_data_settup(self): itr = 0 ## iterator to keep track of name_list index # for each entry in the list of sensors to be displayed for sensorEntry in self.sensorList: ## Add value to entry box on screen entry_ = tk.Entry(self, width=BOX_WIDTH) #gets most recent value in database sensor = sensorEntry.get('sensor') value = database.getData(sensor) #entry_.insert(0, str(text)) ## Display units according to data status if str(value) == 'no data': unit = " " elif sensorEntry.get('unit') is None: unit = " " else: unit = sensorEntry.get('unit') text = str(value) + " " + unit #need to make sure entry box is not edit-able entry_.insert(0, str(text)) # find the corresponding row and column places rowPlace = sensorEntry.get('row') + 1 column_place = sensorEntry.get('column') + 1 entry_.grid(row=rowPlace, column=column_place) # add the entryBox to the entryBox list self.entryBoxList.append(entry_) self.coordDict[sensor].append(itr) self.unitList.append( unit ) # append unit to unit list for use in replace_data_on_screen() itr = itr + 1 ## go to refresh sensor data method self.getNewData()
def signup(): username = input("Masukkan username : "******"Masukkan password : "******"Masukkan Email : ") user = { "id": str(uuid.uuid4()), "username": username, "password": password, "email": email, "cart": [{}], "delivered": [{}], "onProcess": [{}] } key = user["username"] + "_" + user["id"] database = db.getData() database[key] = user db.setDatabase(database) print("Sign Up Berhasil.")
def download_CacheDelete(self): try: name = self.list_widget.currentItem().text() #print(f"Removing {name}") for i in getData(): if name in i: fname = i break delData(name, fname[1], fname[2]) myfile = Path(f"{fname[1]}/{fname[2]}") print(myfile) if myfile.exists(): if self.sel_lang == "tr": dosya_silme = QMessageBox.warning( self, "Dosyayı Sil", "Dosyayı diskten silmeli miyiz?\n\nDiskten silmek için evete basın!", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) elif self.sel_lang == "en": dosya_silme = QMessageBox.warning( self, "Delete File", "Should we delete file from disk?\n\nTo delete file from disk press yes!", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if dosya_silme == QMessageBox.Yes: try: myfile.unlink() if self.sel_lang == "tr": dosya_silme = QMessageBox.information( self, "Dosya Silindi", "Dosya Başarıyla Silindi!", QMessageBox.Ok, QMessageBox.Ok) elif self.sel_lang == "en": dosya_silme = QMessageBox.information( self, "File Deleted", "File Succesfuly Deleted!", QMessageBox.Ok, QMessageBox.Ok) except Exception as e: print(e) elif dosya_silme == QMessageBox.No: pass self.download_Cache() except Exception as e: print(e)
def selectQuery(self, event): # Get selected tree item Id = self.treeviewQueries.Id # Get corresponding info from database query = ( "Select A.*, B.ConnectionName, B.DatabaseId, " + " CASE WHEN B.[User] = '' THEN 'DRIVER={' + Rtrim(B.Driver) + '};Server=' + Rtrim(B.Server) + ';Database=' + Rtrim(B.[Database]) + ';Trusted_Connection=yes;' " " ELSE 'DRIVER={' + Rtrim(B.Driver) + '};Server=' + Rtrim(B.Server) + ';Database=' + Rtrim(B.[Database]) + ';UID=' + Rtrim(B.[User]) + ';PWD=' + Rtrim(B.[Password]) END As ConnectionString " "From Queries A, Connections B " + "Where A.ConnectionId = B.Id " + " And A.Id = " + Id) data = database.getData(self.connectionStringMeta, query) # Clear entries self.entryQueryName.delete(0, tk.END) self.textParameterQuery.delete(1.0, tk.END) self.textQuery.delete(1.0, tk.END) if len(data.index) > 0: # Fill in Database if data.ConnectionName[0] is not None: self.DatabaseName.set(data.ConnectionName[0].strip()) self.connectionId.set(str(data.ConnectionId[0])) # Fill in Name if data.QueryName[0] is not None: self.entryQueryName.insert(0, data.QueryName[0].strip()) # Fill in AutoFetchParameters self.autoFetchParameters.set(int(data.AutoFetchParameters[0])) self.showSqlParameters() # Fill in ParameterQuery if data.SQL_Parameters[0] is not None: self.textParameterQuery.insert(tk.END, data.SQL_Parameters[0].strip()) # Fill in Query if data.SQL_Data[0] is not None: self.textQuery.insert(tk.END, data.SQL_Data[0].strip()) self.connectionStringData = data.ConnectionString[0]
def check_msg(message_id): #print(message_id) """ Gets channel message is in if it exists Parameters: message (int): The message ID Returns: if True: channel_id(int):The ID of the channel the message is in if False: False """ data = database.getData() for i in data['messages']: #print(i) if int(i['message_id']) == int(message_id): #print(i['channel_id']) return i['channel_id'] return False
def adaptLevelOfChildren(self, ParentId, ParentLevel): # Get children query = ("Select Id, ParentId, [Level], Nr " + "From " + self.table + " " + "Where ParentId = " + ParentId + " And Status = 'A' ") if self.filterColumn != None: query += " And " + self.filterColumn + " = " + self.filterId tbl = database.getData(self.connectionString, query) for row in tbl.itertuples(): Id = str(row.Id) # Update Level query = ("Update " + self.table + " Set " + "[Level] = " + ParentLevel + " + 1 " + "Where Id = " + Id + " And Status = 'A' ") if self.filterColumn != None: query += " And " + self.filterColumn + " = " + self.filterId database.setData(self.connectionString, query) # Update level of children of this child self.adaptLevelOfChildren(Id, str(int(ParentLevel) + 1))
def edit(message_id, channel_id, message): """ Edit message in database Parameters: message_id (int): The ID of the message channel_id (int): The channel ID message(str): The new message Returns: None """ #edit message it in channel data = database.getData() for j in data['channels']: if int(j['channel_id']) == int(channel_id): for x in j['messages']: if int(x['message_id']) == int(message_id): x['message'] = message break database.update_database(data) return {}
def test_GetData(self): competition_config = { u'Brazil': { 'start': 20140501030000, 'end': 20140601025959 }, } result = database.getData("Dumplings2014", competition_config) expected = { u'Brazil': { 'count': self.images_count, 'usercount': self.usercount, 'start': 20140501030000, 'userreg': self.userreg, 'data': self.expected_timestamp_data, 'users': self.user_data, 'usage': self.usage, 'category': u'Images_from_Wiki_Loves_Dumplings_2014_in_Brazil', 'end': 20140601025959 } } self.assertEquals(result, expected)
def selectItem(self, event): # Get selected tree item Id = self.treeview.Id # Get corresponding info from database data = database.getData(self.connectionStringMeta, "Select * From Connections Where Id = " + Id) # Clear entries self.entryName.delete(0, tk.END) self.comboboxDriver.delete(0, tk.END) self.entryServer.delete(0, tk.END) self.entryDatabase.delete(0, tk.END) #self.windowsSecurity = 1 self.entryUsername.delete(0, tk.END) self.entryPassword.delete(0, tk.END) self.entryDatabaseId.delete(0, tk.END) self.textDescription.delete(1.0, tk.END) #self.labelLastUpdated.delete(0, tk.END) #self.textDescription.delete(0, tk.END) # Fill in Id if data.Id[0] is not None: self.Id.set(data.Id[0]) # Fill in Name if data.ConnectionName[0] is not None: self.entryName.insert(0, data.ConnectionName[0].strip()) # Fill in Driver if data.Driver[0] is not None: self.comboboxDriver.insert(0, data.Driver[0].strip()) # Fill in Server if data.Server[0] is not None: self.entryServer.insert(0, data.Server[0].strip()) # Fill in Database if data.Database[0] is not None: self.entryDatabase.insert(0, data.Database[0].strip()) # Fill in Username if data.User[0] is not None: self.entryUsername.insert(0, data.User[0].strip()) if data.User[0].strip() == '': self.windowsSecurity.set(1) else: self.windowsSecurity.set(0) self.changeWindowsSecurity() # Fill in Password if data.Password[0] is not None: self.entryPassword.insert(0, data.Password[0].strip()) # Fill in DatabaseId if data.DatabaseId[0] is not None: self.entryDatabaseId.insert(0, data.DatabaseId[0]) # Fill in LastUpdated if data.TimeChanged[0] is not None: self.LastUpdated.set( str(data.TimeChanged[0])[:-7] + ' by ' + data.UserId[0]) # Fill in Description if data.Description[0] is not None: self.textDescription.insert(1.0, data.Description[0].strip()) self.connectionStringData = database.connectionstring( self.comboboxDriver.get().strip(), self.entryServer.get().strip(), self.entryDatabase.get().strip(), self.entryUsername.get().strip(), self.entryPassword.get().strip())
import database, parsePlayer select = "SELECT id, lastcheck FROM uwcsplayers" players = database.getData(select, ()) for i in players: print "Player:", i[0] parsePlayer.update(i[0], i[1])
def calculated_team_averages(): data = database.getData() return render_template('data_viewer/calculated_team_averages.html', allData=json.dumps(data), constants=json.dumps(constants))
def createWidgets(self): # Get top window self.top = self.winfo_toplevel() # Make it stretchable self.top.rowconfigure(0, weight=1) self.top.columnconfigure(0, weight=1) # Make row 10 stretchable self.rowconfigure(11, weight=1) # Make certain columns stretchable self.columnconfigure(0, weight=2) self.columnconfigure(2, weight=4) self.columnconfigure(3, weight=1) self.columnconfigure(4, weight=1) self.columnconfigure(5, weight=1) self.columnconfigure(6, weight=1) #%% LEFT # Tree self.treeview = PyTree(self, connectionString=self.connectionStringMeta, table='Connections', id=self.connectionId) # Define events self.bind('<<TreeviewSelect>>', self.selectItem) self.treeview.grid(row=0, column=0, rowspan=13, sticky=tk.NE + tk.SW, padx=1, pady=1) #%% MIDDLE # Id ttk.Label(self, text="Id:").grid(row=0, column=1, sticky=tk.NE, padx=5, pady=5) self.Id = tk.StringVar() self.labelId = ttk.Label(self, textvariable=self.Id) self.labelId.grid(row=0, column=2, sticky=tk.W + tk.E, padx=5, pady=5) # Name ttk.Label(self, text="Name:").grid(row=1, column=1, sticky=tk.NE, padx=5, pady=5) self.entryName = ttk.Entry(self) self.entryName.grid(row=1, column=2, sticky=tk.W + tk.E, padx=5, pady=5) # Driver ttk.Label(self, text="Driver:").grid(row=2, column=1, sticky=tk.E, padx=5, pady=5) self.comboboxDriver = ttk.Combobox(self) self.comboboxDriver.grid(row=2, column=2, sticky=tk.W + tk.E, padx=5, pady=5) self.drivers = database.getData( self.connectionStringMeta, "Select Rtrim(Driver) As Driver From Drivers") self.comboboxDriver['values'] = self.drivers.Driver.values.tolist() # Server ttk.Label(self, text="Server:").grid(row=3, column=1, sticky=tk.E, padx=5, pady=5) self.entryServer = ttk.Entry(self) self.entryServer.grid(row=3, column=2, sticky=tk.W + tk.E, padx=5, pady=5) # Database ttk.Label(self, text="Database:").grid(row=4, column=1, sticky=tk.E, padx=5, pady=5) self.entryDatabase = ttk.Entry(self) self.entryDatabase.grid(row=4, column=2, sticky=tk.W + tk.E, padx=5, pady=5) # Windows security self.windowsSecurity = tk.IntVar() self.checkbuttonWindowsSecurity = ttk.Checkbutton( self, text="Windows security", variable=self.windowsSecurity, command=self.changeWindowsSecurity) self.checkbuttonWindowsSecurity.grid(row=5, column=2, sticky=tk.W, padx=5, pady=5) # Username self.labelUsername = ttk.Label(self, text="Username:"******"Password:"******"DatabaseId:").grid(row=8, column=1, sticky=tk.E, padx=5, pady=5) self.entryDatabaseId = ttk.Entry(self) self.entryDatabaseId.grid(row=8, column=2, sticky=tk.W, padx=5, pady=5) # Last updated ttk.Label(self, text="Last updated:").grid(row=9, column=1, sticky=tk.E, padx=5, pady=5) self.LastUpdated = tk.StringVar() self.labelLastUpdated = ttk.Label(self, text="-", textvariable=self.LastUpdated) self.labelLastUpdated.grid(row=9, column=2, sticky=tk.W + tk.E, padx=5, pady=5) # Description ttk.Label(self, text="Description:").grid(row=10, column=1, sticky=tk.NE, padx=5, pady=5) self.textDescription = tk.Text(self, height=5, width=50) self.textDescription.grid(row=10, column=2, sticky=tk.W + tk.E, padx=5, pady=5) # Buttons ttk.Button(self, text="Test", command=self.testConnection).grid(row=11, column=2, sticky=tk.NW, padx=5, pady=5) ttk.Button(self, text="Save", command=self.save).grid(row=11, column=2, sticky=tk.NE, padx=5, pady=5) #%% RIGHT # Show/Hide listbox self.showDependents = tk.StringVar() self.showDependents.set('Hide') # Hide/Tables/Views/Queries ttk.Radiobutton(self, text="Hide", variable=self.showDependents, value='Hide', command=self.showListbox).grid(row=0, column=3, sticky=tk.W, padx=5, pady=5) ttk.Radiobutton(self, text="Tables", variable=self.showDependents, value='Tables', command=self.showListbox).grid(row=0, column=4, sticky=tk.W, padx=5, pady=5) ttk.Radiobutton(self, text="Views", variable=self.showDependents, value='Views', command=self.showListbox).grid(row=0, column=5, sticky=tk.W, padx=5, pady=5) ttk.Radiobutton(self, text="Queries", variable=self.showDependents, value='Queries', command=self.showListbox).grid(row=0, column=6, sticky=tk.W, padx=5, pady=5) # TabControl self.listbox = tk.Listbox(self) self.listbox.grid(row=1, column=3, rowspan=10, columnspan=4, sticky=tk.NW + tk.SE, padx=5, pady=5) self.listbox.grid_forget()
def main(): vk_session = vk_api.VkApi( token='3de9c0ce56bb265632da8c7348a37fe081ebd68d9744120f9da0108b82654974ccd938d58ceee8cc26b9c') longpoll = VkBotLongPoll(vk_session, '203395569') city = None asked = False lens = False asked1 = False greet = False asked_type = False started = False renew = False score = 0 city_last = False in_menu = True city_rand2 = False asked2 = False first_place = False guessing_city = False showing_place = False played_cities = False playing_cities = False geocoding = False for event in longpoll.listen(): vk = vk_session.get_api() if event.type == VkBotEventType.MESSAGE_NEW: if not greet: response = vk.users.get(user_id=event.obj.message['from_id']) vk.messages.send(user_id=event.obj.message['from_id'], random_id=random.randint(0, 2 ** 64), message=f'Приветствую тебя, {response[0]["first_name"]}') greet = True if event.message.text.lower() == 'выйти': showing_place = False playing_cities = False geocoding = False guessing_city = False first_place = False score = 0 in_menu = True lens = False city = None asked = False asked2 = False asked_type = False # навыки: if event.message.text == 'Покажи место' or showing_place: showing_place, asked, asked_type, city, in_menu = func_showing_place(event, asked, asked_type, city, vk, showing_place, in_menu) if (event.message.text == 'zen' or event.message.text == 'пасхалка') and in_menu: vk.messages.send(user_id=event.obj.message['from_id'], message=random.choice(['У самурая нет цели, только путь...', 'почему так...', 'не теряем время, нужно решать задачи...']), keyboard=open('kb1.json', 'r', encoding='UTF-8').read(), random_id=random.randint(0, 2 ** 64)) if event.message.text == 'Рейтинг': data = database.getName() rating1 = [] rating2 = [] try: for i in data: data2 = database.getData(i[0]) for j in range(len(data2)): try: rating1.append(f'{i[1]} - {data2[j][3]}') rating2.append(f'{i[1]} - {len(data2[j][2].split())}') except Exception: pass vk.messages.send(user_id=event.obj.message['from_id'], message='Рейтинг игры в города:', keyboard=open('kb1.json', 'r', encoding='UTF-8').read(), random_id=random.randint(0, 2 ** 64)) if rating1: for i in rating1: vk.messages.send(user_id=event.obj.message['from_id'], message=i, keyboard=open('kb1.json', 'r', encoding='UTF-8').read(), random_id=random.randint(0, 2 ** 64)) else: vk.messages.send(user_id=event.obj.message['from_id'], message='Нет данных', keyboard=open('kb1.json', 'r', encoding='UTF-8').read(), random_id=random.randint(0, 2 ** 64)) vk.messages.send(user_id=event.obj.message['from_id'], message='Рейтинг "угадай город":', keyboard=open('kb1.json', 'r', encoding='UTF-8').read(), random_id=random.randint(0, 2 ** 64)) if rating2: for i in rating2: vk.messages.send(user_id=event.obj.message['from_id'], message=i, keyboard=open('kb1.json', 'r', encoding='UTF-8').read(), random_id=random.randint(0, 2 ** 64)) else: vk.messages.send(user_id=event.obj.message['from_id'], message='Нет данных', keyboard=open('kb1.json', 'r', encoding='UTF-8').read(), random_id=random.randint(0, 2 ** 64)) except Exception as a: vk.messages.send(user_id=event.obj.message['from_id'], message=a, keyboard=open('kb1.json', 'r', encoding='UTF-8').read(), random_id=random.randint(0, 2 ** 64)) if event.message.text == 'Геокодер' or geocoding: event, asked1, vk, geocoding, in_menu = func_geocoder(event, asked1, vk, geocoding, in_menu) if event.message.text == 'Игра в города' or playing_cities: try: event, playing_cities, started, city_last, vk, in_menu, played_cities, score = func_play_cities( event, playing_cities, started, city_last, vk, in_menu, played_cities, score) except Exception as err: vk.messages.send(user_id=event.obj.message['from_id'], random_id=random.randint(0, 2 ** 64), keyboard=open('kb1.json', 'r', encoding='UTF-8').read(), message=f'Произошла ошибка. Вы находитесь в меню.') showing_place = False playing_cities = False geocoding = False guessing_city = False first_place = False score = 0 in_menu = True lens = False city = None asked = False asked2 = False asked_type = False if event.message.text == 'Угадай город' or guessing_city: event, guessing_city, in_menu, asked2, vk, city_rand2 = func_guess_city(event, guessing_city, in_menu, asked2, vk, city_rand2) if event.message.text == 'Расстояния' or lens: try: event, vk, lens, in_menu, first_place, renew = func_distance(event, vk, lens, in_menu, first_place, renew) except Exception as err: vk.messages.send(user_id=event.obj.message['from_id'], random_id=random.randint(0, 2 ** 64), keyboard=open('kb1.json', 'r', encoding='UTF-8').read(), message=f'Произошла ошибка. Вы находитесь в меню.') showing_place = False playing_cities = False geocoding = False guessing_city = False first_place = False in_menu = True lens = False city = None asked = False asked2 = False asked_type = False if in_menu and not (event.message.text == 'zen' or event.message.text == 'пасхалка'): vk.messages.send(user_id=event.obj.message['from_id'], random_id=random.randint(0, 2 ** 64), keyboard=open('kb1.json', 'r', encoding='UTF-8').read(), message=f'Я SpaceBot и у меня есть множество функций. Их всех ты сейчас видишь на клавиатуре.')
def download_Cache(self): self.list_widget.clear() for i in getData(): items = QListWidgetItem(i[0], self.list_widget)
def func_guess_city(event, guessing_city, in_menu, asked2, vk, city_rand2): if event.message.text == 'Угадай город': guessing_city = True in_menu = False asked2 = False num = 0 data = database.getData(event.obj.message['from_id']) if data: if data[0][2]: num = len(data[0][2].split()) vk.messages.send( user_id=event.obj.message['from_id'], message= f'Игра "Угадай город". Ваша задача по картинке угадать город. Всего городов угадано: {num}.', keyboard=open('kb3.json', 'r', encoding='UTF-8').read(), random_id=random.randint(0, 2**64)) if not database.getData(event.obj.message['from_id']): database.updateAll(None, event.obj.message['from_id'], None) cities = open('cities2.txt', encoding='UTF-8').read().split('\n') if asked2: if event.message.text.capitalize() == city_rand2: vk.messages.send(user_id=event.obj.message['from_id'], random_id=random.randint(0, 2**64), message=f'Правильно!', keyboard=open('kb3.json', 'r', encoding='UTF-8').read()) data = database.getData(event.obj.message['from_id']) if data: if data[0][2]: database.updateGuessedCities( city_rand2 + ' ' + data[0][2] + ' ', event.obj.message['from_id']) else: database.updateGuessedCities(city_rand2 + ' ', event.obj.message['from_id']) else: vk.messages.send(user_id=event.obj.message['from_id'], random_id=random.randint(0, 2**64), message=f'Неправильно! Это же {city_rand2}', keyboard=open('kb3.json', 'r', encoding='UTF-8').read()) asked2 = False if not asked2: city_rand2 = random.choice(cities) data = database.getData(event.obj.message['from_id']) if not data or not data[0][2] or (data[0][2] and len(data[0][2].split()) < 12): if data and data[0][2]: while city_rand2 in data[0][2]: city_rand2 = random.choice(cities) geocoder_request = f"http://geocode-maps.yandex.ru/1.x/?apikey=40d1649f-0493-4b70-98ba-98533de7710b&geocode={city_rand2}&format=json" response = requests.get(geocoder_request) if response: json_response = response.json() toponym = json_response["response"]["GeoObjectCollection"][ "featureMember"][0]["GeoObject"] toponym_coodrinates = toponym["Point"]["pos"] map_request = f"http://static-maps.yandex.ru/1.x/?ll={','.join(toponym_coodrinates.split())}&spn=0.005,0.005&l=map" response = requests.get(map_request) map_file = "static/map.png" with open(map_file, "wb") as file: file.write(response.content) upload = vk_api.VkUpload(vk) photo = upload.photo_messages('static/map.png') owner_id = photo[0]['owner_id'] photo_id = photo[0]['id'] access_key = photo[0]['access_key'] attachment = f'photo{owner_id}_{photo_id}_{access_key}' vk.messages.send(user_id=event.obj.message['from_id'], random_id=random.randint(0, 2**64), message=f'Какой это город?', keyboard=open('kb3.json', 'r', encoding='UTF-8').read(), attachment=attachment) asked2 = True else: vk.messages.send(user_id=event.obj.message['from_id'], random_id=random.randint(0, 2**64), message=f'Вы видели все города!', keyboard=open('kb3.json', 'r', encoding='UTF-8').read()) return event, guessing_city, in_menu, asked2, vk, city_rand2
def func_play_cities(event, playing_cities, started, city_last, vk, in_menu, played_cities, score): cities = open('cities.txt').read().split('\n') if event.message.text == 'Игра в города': city_last = None playing_cities = True started = False played_cities = [] data = database.getData(event.obj.message['from_id']) num = 0 if data: if data[0][3]: num = data[0][3] vk.messages.send(user_id=event.obj.message['from_id'], message=f'Начинайте! Ваш лучший счёт - {num}.', keyboard=open('kb3.json', 'r', encoding='UTF-8').read(), random_id=random.randint(0, 2**64)) if not database.getData(event.obj.message['from_id']): database.updateAll(None, event.obj.message['from_id'], None) response = vk.users.get(user_id=event.obj.message['from_id']) database.updateName(event.obj.message['from_id'], response[0]['first_name']) if event.message.text.capitalize( ) in cities and event.message.text.capitalize() not in played_cities: if not city_last or city_last[-1] == event.message.text.lower()[0]: score += 1 played_cities.append(event.message.text) last = event.message.text[-1] count = -1 while last == 'ы' or last == 'ь' or last == 'ъ': count -= 1 last = event.message.text[count] letter_cities = [] for i in cities: if i.startswith(last.upper()) and i not in played_cities: letter_cities.append(i) city_rand = random.choice(letter_cities) vk.messages.send(user_id=event.obj.message['from_id'], message=city_rand, keyboard=open('kb3.json', 'r', encoding='UTF-8').read(), random_id=random.randint(0, 2**64)) city_last = city_rand played_cities.append(city_last) count = 0 while city_last[-1] == 'ы' or city_last[-1] == 'ь' or city_last[ -1] == 'ъ': count -= 1 city_last = city_last[0:count] else: vk.messages.send(user_id=event.obj.message['from_id'], message='Не то!', keyboard=open('kb3.json', 'r', encoding='UTF-8').read(), random_id=random.randint(0, 2**64)) elif event.message.text not in cities and not in_menu: vk.messages.send(user_id=event.obj.message['from_id'], message='Нет такого города!', keyboard=open('kb3.json', 'r', encoding='UTF-8').read(), random_id=random.randint(0, 2**64)) elif event.message.text in played_cities: vk.messages.send(user_id=event.obj.message['from_id'], message='Был такой город!', keyboard=open('kb3.json', 'r', encoding='UTF-8').read(), random_id=random.randint(0, 2**64)) in_menu = False data = database.getData(event.obj.message['from_id']) if data: if data[0][3]: if data[0][3] < score: database.updatePlayCities(score, event.obj.message['from_id']) else: database.updatePlayCities(score, event.obj.message['from_id']) return event, playing_cities, started, city_last, vk, in_menu, played_cities, score
import database arr = database.getData('stocks','10-20','10-30') dict1 = arr[0] dict2 = arr[1] stocks1 = dict1["stock"] stocks2 = dict2["stock"] # dict1["mentions"] = mentions (array) # dict1["stocks"] = stock(array) # dict1["sentiment"] = sentiment(array) dictionary ={} for i in range(0,len(stocks)): symbol = stocks1[i] if(symbol in stocks2) inc = (dict2['mentions'][i] - dict1['mentions'][i])/dict2['mentions'][i] * 100 dictionary[symbol] = inc dictionarySort = OrderedDict(sorted(dictionary.items(), key=lambda i: i[1], reverse = True)) print(dictionarySort)