Пример #1
0
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
Пример #2
0
 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"]
                 }
             }))
Пример #3
0
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()
Пример #4
0
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
Пример #5
0
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() 
Пример #6
0
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
Пример #7
0
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
Пример #8
0
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
Пример #9
0
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)
Пример #10
0
                '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())
Пример #11
0
    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
Пример #12
0
        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')
Пример #13
0
    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"
Пример #14
0
        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"]
            })
Пример #15
0
def list(update, context):
    userId = update.message.chat_id
    update.message.reply_text(sm.getToDoList(userId),parse_mode = ParseMode.MARKDOWN)
Пример #16
0
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)
Пример #17
0
    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)

Пример #18
0
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")
Пример #19
0
			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')