def button(update, context): query = update.callback_query # CallbackQueries need to be answered, even if no notification to the user is needed query.answer() rawData = (query.data).split('|') sm.removeTask(rawData[0], rawData[1], rawData[2]) replyMsg = "\"" + rawData[1] + "\" due on " + rawData[2] query.edit_message_text(text="Great! You have completed: \n{}".format("*" + rawData[1]+ "*"), parse_mode = ParseMode.MARKDOWN) #edit later to include deadline
def on_message(self, message): global mserver #print("Recieved message %s" % message) try: data = json.loads(message) if data["type"] == "console": mserver.writetoserver(data["data"], self) elif data["type"] == "start": if type(data["data"]) is str: if data["data"] == "start": if not mserver.running(): mserver.startserver() else: if not mserver.running(): sm.setcurrent(data["data"]) mserver = Minecraft.mserver( socket=socks, server_dir=sm.current["data"]["server_dir"], run=sm.current["data"]["run"], args=sm.current["data"]["args"]) mserver.startserver() else: raise ValueError("Bad JSON") elif data["type"] == "status": socks.sendstatus(mserver) elif data["type"] == "stop_webserver": stopwebserver() elif data["type"] == "sigint": if mserver.running(): mserver.sigint() socks.sendstatus(mserver) elif data["type"] == "kill": if mserver.running(): mserver.stopserver() socks.sendstatus(mserver) else: raise ValueError("Bad JSON") except (ValueError, KeyError, json.decoder.JSONDecodeError): self.write_message( json.dumps({ "type": "error", "content": { "output": "Malformed JSON. %s cannot be understood by this server" % message } })) except NotADirectoryError: self.write_message( json.dumps({ "type": "error", "content": { "output": "Improper directory. %s is not a valid path" % sm.current["data"]["server_dir"] } }))
def doneAdding(update, context): user_data = context.user_data userId = update.message.chat_id task = user_data.get('task') date = user_data.get('date') time = user_data.get('time') update.message.reply_text('*' + task + '*' + ' due on *' + date + '* at *' + time + '* has been added!', reply_markup = markup, parse_mode = ParseMode.MARKDOWN) formattedTime = user_data.get('formatTime') deadline = formatDatetime(date, formattedTime) sm.addTask(userId, task, deadline) user_data.clear()
def addExam(update, context): moduleName = update.message.text if moduleName != 'q': context.user_data['module'].append(moduleName) update.message.reply_text( "What is the level of the module you would like to add? \nPlease enter the number: 1/2/3. \nPay " "attention: There are three levels. Level 1 means the module you invest the most energy and so on.", reply_markup=markup2) return LEVEL else: sm.addreviewtime(update.message.chat_id, context.user_data.get('recessdate'), context.user_data.get('examdate')) sm.addexam(update.message.chat_id,context.user_data.get('module'), context.user_data.get('level')) context.user_data.clear() return ConversationHandler.END
def main(): sm.creatTable() updater = Updater(TOKEN, use_context=True,request_kwargs={'proxy_url': '填你自己的'}) job = updater.job_queue dp = updater.dispatcher conv_handler = ConversationHandler( entry_points=[MessageHandler(Filters.regex('^Add$'), add)], states={ TASK: [MessageHandler(Filters.regex('^((?!Cancel).)*$'), getTask)], DATE: [MessageHandler(Filters.regex('^((?!Cancel).)*$'), getDate)], INVALIDDATE: [MessageHandler(Filters.regex('^((?!Cancel).)*$'), invalidDate)], TIME: [MessageHandler(Filters.regex('^((?!Cancel).)*$'), getTime)], INVALIDTIME: [MessageHandler(Filters.regex('^((?!Cancel).)*$'), invalidTime)] }, fallbacks=[MessageHandler(Filters.regex('^Cancel$'), cancel)], allow_reentry = True ) conv_handler2 = ConversationHandler( entry_points=[MessageHandler(Filters.regex('^Exam$'), exam)], states={ RECESSDATE: [MessageHandler(Filters.regex('^((?!Cancel).)*$'), getRecessDate)], EXAMDATE : [MessageHandler(Filters.regex('^((?!Cancel).)*$'), getExamDate)], EXAM : [MessageHandler(Filters.regex('^((?!Cancel).)*$'), addExam)], LEVEL: [MessageHandler(Filters.regex('^((?!Cancel).)*$'), addLevel)] }, fallbacks=[MessageHandler(Filters.regex('^Cancel$'), examcancel)], allow_reentry = True ) dp.add_error_handler(error) dp.add_handler(conv_handler) dp.add_handler(conv_handler2) dp.add_handler(CommandHandler("start", start)) dp.add_handler(CallbackQueryHandler(button)) dp.add_handler(MessageHandler(Filters.regex('^List$'), list)) dp.add_handler(MessageHandler(Filters.regex('^Remove'), remove)) dp.add_handler(MessageHandler(Filters.regex('^Help$'), help)) schedule.every().day.at("16:57").do(sendlistdaily) Thread(target=schedule_checker).start() updater.bot.setWebhook('https://yourownappname.herokuapp.com/' + TOKEN) updater.start_polling() updater.idle()
def set_sensor_state(name, id, state): data = dict(output=state) dev = devices.get(name, None) if dev is not None: if dev["type"] == "power_cord": response_json, status_code = make_ubnt_request("PUT", 'http://' + dev["ip_address"] + '/sensors/' + str(id), data=data) elif dev["type"] == "server": status_code = 200 if state == 1: # start server via wake on lan ServerManager.wake_on_lan(dev['mac_address']) elif state == 0: # shutdown server via ssh print "shutdown" ServerManager.shutdown(dev['ip_address'], dev['ssh_username'], dev['ssh_password']) return "", status_code
def get_sensor_data(): res = list() for dev in devices.itervalues(): dev_data = dict() dev_data["name"] = dev["name"] dev_data["type"] = dev["type"] if dev["type"] == "power_cord": dev_data["data"] = get_power_coord_data(dev["ip_address"]) elif dev["type"] == "server": dev_data["data"] = {'output': ServerManager.server_is_up(dev["ip_address"])} res.append(dev_data) return res
def get_sensor_data(): res = list() for dev in devices.itervalues(): dev_data = dict() dev_data["name"] = dev["name"] dev_data["type"] = dev["type"] if dev["type"] == "power_cord": response_json, status_code = make_ubnt_request("GET", "http://" + dev["ip_address"] + "/sensors") dev_data["data"] = response_json["sensors"] elif dev["type"] == "server": dev_data["data"] = {"output": ServerManager.server_is_up(dev["ip_address"])} res.append(dev_data) return res
def remove(update, context): userId = update.message.chat_id arr = sm.getArrayList(userId) keyboard= [] for row in arr: task = row[0] deadline = row[1] time = deadline.strftime('%H:%M') hr, minute = map(int, time.split(':')) if hr > 12: #account for 12am later hr -= 12 time = str(hr) + ":" + deadline.strftime('%M') + "PM" elif hr == 12: time = str(hr) + ":" + deadline.strftime('%M') + "PM" else: time = str(hr) + ":" + deadline.strftime('%M') + "AM" option = "\"" + str(task) + "\"\n Due on: " + deadline.strftime('%d/%m/%Y') + " " + time rawData = str(userId) + "|" + str(row[0]) + "|" + row[1].strftime('%Y/%m/%d %H:%M:%S') keyboard.append([InlineKeyboardButton(str(option), callback_data = rawData)]) reply_markup = InlineKeyboardMarkup(keyboard) update.message.reply_text('Click on the completed task!', reply_markup=reply_markup, parse_mode = ParseMode.MARKDOWN)
'type': self.typeManager.getTypeForName(t[0]), 'name': t[1], 'path': t[2] }) return indexes def getIndexesForUserContributed(self, usercontributed): indexes = [] path = usercontributed.path indexPath = os.path.join(path, self.indexPath) conn = sqlite3.connect(indexPath) sql = 'SELECT type, name, path FROM searchIndex ORDER BY name COLLATE NOCASE' c = conn.execute(sql) data = c.fetchall() conn.close() for i in data: indexes.append({ 'type': self.typeManager.getTypeForName(t[0]), 'image': self.__getTypeIconWithName(t[0]), 'name': t[1], 'path': t[2] }) return types if __name__ == '__main__': import ServerManager c = UserContributedManager(ServerManager.ServerManager(), '../Images/icons', '../Images/types') print(c.getAvailableUserContributed())
def load(self): self.display_image = pygame.image.load(self.image).convert_alpha( ) # Loading the image assuming it would be a png file self.display_image = pygame.transform.scale( self.display_image, (self.width, self.height)) # Transforming image to correct width and height def render(self): self.load() # Call the function above gameDisplay.blit(self.display_image, (self.x, self.y)) # Displaying image on the screen try: server = Scores.Scores() # Creating a Server Instance global_high_score = server.get_num_score( ) # Getting Global High Score From Server except: print("cannot connect to server") # If No Internet Connection global_high_score = "Cannot Connect" # Health Management class Health: def __init__(self, x, y, width, height): self.x = x # x-axis of health image self.y = y self.width = width self.height = height
conn.close() for t in data: indexes.append({ 'type': self.typeManager.getTypeForName(t[0]), 'name': t[1], 'path': t[2] }) return indexes def getIndexesForCheatsheet(self, cheatsheet): indexes = [] path = cheatsheet.path indexPath = os.path.join(path, self.indexPath) conn = sqlite3.connect(indexPath) sql = 'SELECT type, name, path FROM searchIndex ORDER BY name COLLATE NOCASE' c = conn.execute(sql) data = c.fetchall() conn.close() for i in data: indexes.append({ 'type': self.typeManager.getTypeForName(t[0]), 'name': t[1], 'path': t[2] }) return types if __name__ == '__main__': import ServerManager c = CheatsheetManager(ServerManager.ServerManager(), '../Images/icons')
coins_r = coins_r[1].split("'") coins_r = coins_r[0] return coins_r def update_coins(username, coins): url = "http://dodgethat.co.uk/coins.php?username="******"&coins=" + str(coins) + "&password=sameer123" urllib.request.urlopen(url) #User coin functionality ends here #Server connection starts here try: server = Scores.Scores() global_high_score = server.get_num_score() except: print("Cannot connect to server at this moment") global_high_score = "Connection failed" #Heath Management Starts Here class Health: def __init__(self, x, y, width, height): self.x = x # x-axis of health image self.y = y self.width = width self.height = height self.image = "images/health.png"
app = tornado.web.Application([(r"/", MainWebsite), (r"/dynamic/.*", RenderPage), (r"/ws", MainWebSocket), (r"/login", login.LoginHandler), (r"/adduser", login.AddUser)], **settings) else: app = tornado.web.Application([(r"/", MainWebsite), (r"/dynamic/.*", RenderPage), (r"/ws", MainWebSocket), (r"/login", login.LoginHandler)], **settings) socks = Socketinterface() if not sm.loadservers(): stopwebserver() sm.current = sm.getdefserver() mserver = Minecraft.mserver(socket=socks, server_dir=sm.current["data"]["server_dir"], run=sm.current["data"]["run"], args=sm.current["data"]["args"]) if Settings.loaded and Settings.settings["ssl"]["enabled"]: server = tornado.httpserver.HTTPServer( app, ssl_options={ "certfile": Settings.settings["ssl"]["certfile"], "keyfile": Settings.settings["ssl"]["keyfile"] })
def list(update, context): userId = update.message.chat_id update.message.reply_text(sm.getToDoList(userId),parse_mode = ParseMode.MARKDOWN)
def groupsend(): group=sm.alluserId() for id in group: bot.send_message(chat_id=id[0], text=sm.getToDoList(id[0]),parse_mode = ParseMode.MARKDOWN)
Note: The code below IS executed in the Environment and can be accessed by the user! """ from re import match from random import choice as choose from TempoClock import * from ServerManager import * from Players import * from Patterns import * from Code import * import Scale # Default server connection and metronome Server = ServerManager() Clock = TempoClock() BufferManager = BufferManager(Server) # From Players NOT Buffers BufferManager.sendToServer() # Clock dependant variable - stream / inherit float / allow float/int methods and change code class var(TimeVar): def __init__(self, values=[0], dur=4): TimeVar.__init__(self, values, dur, Clock)
import ServerManager import signal import sys def signal_handler(sig, frame): if (sig == signal.SIGINT): print("Closing the server") del myServer def getPortNumber(): # If the user gave a port number, set it to that. Otherwise, use the default port = -1 try: port = int(sys.argv[1]) except IndexError: port = int(1609) return port if __name__ == '__main__': signal.signal(signal.SIGINT, signal_handler) welcomePort = int(getPortNumber()) if 0 < welcomePort <= 65535: myServer = ServerManager.FileServer() myServer.Start("localhost", welcomePort) else: print("User gave an invalid port number")
answerUser = c.fetchall() if len(answerUser) > 0: answerUser = answerUser[0] else: answerUser = ['[Deleted User]','',''] c = conn.execute(commentsSql, (answer[1],)) comments = c.fetchall() commentData = '' for comment in comments: c = conn.execute(questionUserSql, (comment[2],)) commentUser = c.fetchall() if len(commentUser) > 0: commentUser = commentUser[0] else: commentUser = ['[Deleted User]','',''] commentTime = time.strftime('%d-%b-%Y at %H:%M:%S', time.gmtime(comment[1])) commentData += commentsTemplate.replace('{{{CommentBody}}}', comment[0]).replace('{{{CommentOwnerId}}}', str(comment[2])).replace('{{{CommentDisplayname}}}',commentUser[0]).replace('{{{CommentDateTime}}}',str(commentTime)) answerData += answerTemplate.replace('{{{AnswerScore}}}', str(answer[2])).replace('{{{AcceptedAnswer}}}', ' ').replace('{{{AnswerDateTime}}}', str(answerTime)).replace('{{{AnswerBody}}}', answer[0]).replace('{{{AnswerDisplayName}}}',answerUser[0]).replace('{{{AnswerOwnerId}}}', str(answer[3])).replace('{{{Comments}}}', commentData) body += answerData body += '</body></html>' conn.close() # return '<html><body>' + body + '</body</html>' return body if __name__ == '__main__': import ServerManager c = StackOverflowManager(ServerManager.ServerManager(), '../Images/icons')