def toTasks(self, checked): if self.tasks_window is None: self.tasks_window = Tasks() self.tasks_window.show() else: self.tasks_window.close() self.tasks_window = None
def _countObject(self, objType, targetAction): """Generic function for calculating projects data or slacking statistics""" self._data = DataManager.getByRange(self._fromDate, self._toDate) res = {} for date, task, projectName in self._data: if task == "__start__": self.timings.setPrevDate(None) objKey = projectName if objType == "project" else task spentSeconds = self.timings.count(date, Tasks.taskType(task)) if Tasks.taskType(task) != targetAction: self.timings.setPrevDate(date) continue if spentSeconds: if objKey not in res: res[objKey] = spentSeconds else: res[objKey] += spentSeconds self._countAttrib(res.values()) if res: return sorted(res.iteritems(), key=lambda item:item[1], reverse=True) else: return []
def countTasks(self): """Count tasks statistics divided by projects""" self._data = DataManager.getByRange(self._fromDate, self._toDate) res = {} for date, task, projectName in self._data: if task == "__start__": self.timings.setPrevDate(None) spentSeconds = self.timings.count(date, Tasks.taskType(task)) if Tasks.taskType(task) != "work": continue if spentSeconds: if projectName not in res: res[projectName] = {} if task not in res[projectName]: res[projectName][task] = spentSeconds else: res[projectName][task] += spentSeconds self._countAttrib([v for k in res for v in res[k].values()]) if res: ret = {} for k in res.keys(): ret[k] = sorted(res[k].iteritems(), key=lambda item:item[1], reverse=True) return ret else: return {}
async def load_one_task(tasks, user_task): if user_task['name'] == 'Silver' and user_task['status']: task = Silver().run() tasks.append({"name": "Silver", "task": task}) asyncio.create_task(task, name="Silver") # tasks.append(Silver().run()) # 领取银瓜子 elif user_task['name'] == 'EverydayTask' and user_task['status']: task = Tasks().run() tasks.append({"name": "EverydayTask", "task": task}) asyncio.create_task(task, name="Tasks") # tasks.append(Tasks().run()) # 获取每日包裹奖励,签到功能,领取每日任务奖励,应援团签到,过期礼物处理,银瓜子兑换硬币,硬币换瓜子,将当前佩戴的勋章亲密度送满, elif user_task['name'] == 'LotteryResult' and user_task['status']: task = LotteryResult().query() tasks.append({"name": "LotteryResult", "task": task}) asyncio.create_task(task, name="LotteryResult") # tasks.append(LotteryResult().query())# 广播抽奖检测 elif user_task['name'] == 'connect' and user_task['status']: task = connect().create() tasks.append({"name": "connect", "task": task}) asyncio.create_task(task, name="connect") # tasks.append(connect().create()) # 新的战疫分区直播间实际上没有弹幕区??? elif user_task['name'] == 'PKLottery' and user_task['status']: task = PKLottery().run() tasks.append({"name": "PKLottery", "task": task}) asyncio.create_task(task, name="PKLottery") # tasks.append(PKLottery().run()) # 大乱斗抽奖? elif user_task['name'] == 'GuardLottery' and user_task['status']: task = GuardLottery().run() tasks.append({"name": "GuardLottery", "task": task}) asyncio.create_task(task, name="GuardLottery") # tasks.append('GuardLottery') # tasks.append(GuardLottery().run()) # 上船奖励? else: pass
def __init__(self): stackPanel = StackPanel() stackPanel.add(Mailboxes(), self.createHeaderHTML("mailgroup.gif", "Mail"), True) stackPanel.add(Tasks(), self.createHeaderHTML("tasksgroup.gif", "Tasks"), True) stackPanel.add(Contacts(), self.createHeaderHTML("contactsgroup.gif", "Contacts"), True) stackPanel.showStack(0) self.setWidget(stackPanel)
def btnDonePress_(self, sender): """On done button press""" if self.cbxInput.stringValue().strip(): taskName = self.cbxInput.stringValue() self.appendTask(*fh.formatTaskString(*self.tasks.add(taskName, self.pbtnProject.titleOfSelectedItem()))) self.readCounters() self.cbxInput.setStringValue_("") self.scrollToEnd() if Tasks.taskType(taskName) == "work": Projects.addAutocomplete(self.pbtnProject.titleOfSelectedItem(), taskName) else: SlackingAutocompletes.add(taskName) self.cbxInput.addItemWithObjectValue_(taskName)
def initControls(self): """Init basic controls""" self.outputArea.setString_("") self.tasks = Tasks() if Settings.get("showWorkTill"): self.workTillBox.setHidden_(False) else: self.workTillBox.setHidden_(True) self.pbtnProject.removeAllItems() self.pbtnProject.addItemsWithTitles_(Projects.get()) self.pbtnProject.selectItemWithTitle_(Settings.get("selectedProject")) self.projectChange_(None) self.fillTasks() self.scrollToEnd()
def btnDonePress_(self, sender): """On done button press""" if self.tasks.dayStarted(): if self.cbxInput.stringValue().strip(): taskName = self.cbxInput.stringValue() self.appendTask(*fh.formatTaskString(*self.tasks.add(taskName, self.pbtnProject.titleOfSelectedItem()))) self.readCounters() self.cbxInput.setStringValue_("") self.scrollToEnd() if Tasks.taskType(taskName) == "work": Projects.addAutocomplete(self.pbtnProject.titleOfSelectedItem(), taskName) else: SlackingAutocompletes.add(taskName) self.cbxInput.addItemWithObjectValue_(taskName) else: if Settings.get("showHelpMessageOnStart"): self.showStartHelpMessage() taskName = Settings.get("startPlaceholder") self.appendTask(*fh.formatTaskString(*self.tasks.add(taskName))) self.initDoneButton()
def runFlaskApp1(): Tasks.run(host='127.0.0.1', port=5000, debug=False, threaded=True)
from bilibili import bilibili import threading import biliconsole # print('Hello world.') printer = Printer() bilibili() Statistics() utils.fetch_user_info() utils.fetch_bag_list() utils.fetch_medal() task = OnlineHeart() task1 = Silver() task2 = Tasks() task3 = LotteryResult() task4 = connect() console_thread = threading.Thread(target=biliconsole.controler) console_thread.start() loop = asyncio.get_event_loop() tasks = [ task.run(), task1.run(), task2.run(), task4.connect(), task3.query(), printer.clean_printlist()
class MainController(NSObject): outputArea = objc.IBOutlet("outputArea") lblTimeLeft = objc.IBOutlet("lblTimeLeft") lblTimeSpentCurr = objc.IBOutlet("lblTimeSpentCurr") cbxInput = objc.IBOutlet("cbxInput") lblSlackingTime = objc.IBOutlet("lblSlackingTime") lblTimeSpent = objc.IBOutlet("lblTimeSpent") lblWorkTill = objc.IBOutlet("lblWorkTill") pbtnProject = objc.IBOutlet("pbtnProject") pbtnProject = objc.IBOutlet("pbtnProject") workTillBox = objc.IBOutlet("workTillBox") mainWindow = objc.IBOutlet("mainWindow") prefWindow = objc.IBOutlet("prefWindow") reportWindow = objc.IBOutlet("reportWindow") reportController = objc.IBOutlet("reportController") applicationRef = objc.IBOutlet("applicationRef") btnDone = objc.IBOutlet("btnDone") tasks = None def awakeFromNib(self): def onGrowlClick(): self.applicationRef.unhide() self.cbxInput.becomeFirstResponder() self.notification = Notification(onGrowlClick) self.initControls() self.initWindowStates() self.readCounters() self._timer = NSTimer.scheduledTimerWithTimeInterval_target_selector_userInfo_repeats_(Settings.get("timerInterval"), self, self.timerFunction, None, True) def initControls(self): """Init basic controls""" self.outputArea.setString_("") self.tasks = Tasks() if Settings.get("showWorkTill"): self.workTillBox.setHidden_(False) else: self.workTillBox.setHidden_(True) self.pbtnProject.removeAllItems() self.pbtnProject.addItemsWithTitles_(Projects.get()) self.pbtnProject.selectItemWithTitle_(Settings.get("selectedProject")) self.projectChange_(None) self.initDoneButton() self.fillTasks() self.scrollToEnd() def initDoneButton(self): if self.tasks.dayStarted(): self.btnDone.setTitle_("Done") else: self.btnDone.setTitle_("Start") def initWindowStates(self): """Init windows sizes and positions""" self.prefWindow.setFrameAutosaveName_("prefWindow") self.mainWindow.setFrameAutosaveName_("mainWindow") self.reportWindow.setFrameAutosaveName_("reportWindow") def timerFunction(self): """Timer callback function""" self.tasks.setCurrentTask(self.cbxInput.stringValue()) self.readCounters() self.notification.idleNotify(self.tasks.timings.currentSeconds) if self.tasks.timings.isNextDay(): self.initControls() def readCounters(self): """Read counters""" self.lblTimeSpent.setStringValue_(fh.secToTimeStr(self.tasks.timings.spentSeconds)) self.lblSlackingTime.setStringValue_(fh.secToTimeStr(self.tasks.timings.slackingSeconds)) self.lblTimeLeft.setStringValue_(fh.secToTimeStr(self.tasks.timings.leftSeconds)) self.lblTimeSpentCurr.setStringValue_(fh.secToTimeStr(self.tasks.timings.currentSeconds)) self.lblWorkTill.setStringValue_(fh.timeStructToTimeStr(self.tasks.timings.workTillTime)) def appendTask(self, taskString, color): def appendText(text, color=None): """Append text to task text area""" endRange = NSRange() endRange.location = self.outputArea.textStorage().length() endRange.length = 0 self.outputArea.replaceCharactersInRange_withString_(endRange, text) if color: colorRange = NSRange() colorRange.location = self.outputArea.textStorage().length() - len(text) colorRange.length = len(text) self.outputArea.setTextColor_range_(color, colorRange) appendText(taskString, color) if self.reportWindow.isVisible(): self.reportController.generateChart() def fillTasks(self): """Fill text area with tasks""" for task in self.tasks.taskList: self.appendTask(*fh.formatTaskString(*task)) def scrollToEnd(self): """Scroll tasks textarea to the end""" self.outputArea.scrollRangeToVisible_(NSMakeRange(self.outputArea.string().length(), 0)) def showStartHelpMessage(self): """Show alert with help message""" alert = NSAlert.alloc().init() alert.addButtonWithTitle_('OK') alert.setMessageText_("Congrats, you started your working day!") alert.setInformativeText_("Now start doing your working activity (e.g reading mail). " "When you finish with your activity go back to MacTimeLog and type it in. " "If your activity is slacking, use 2 asterisks (**) at the end of the activity's name.") alert.setShowsSuppressionButton_(True) alert.runModal() if alert.suppressionButton().state() == NSOnState: Settings.set("showHelpMessageOnStart", False) Settings.sync() @objc.IBAction def btnDonePress_(self, sender): """On done button press""" if self.tasks.dayStarted(): if self.cbxInput.stringValue().strip(): taskName = self.cbxInput.stringValue() self.appendTask(*fh.formatTaskString(*self.tasks.add(taskName, self.pbtnProject.titleOfSelectedItem()))) self.readCounters() self.cbxInput.setStringValue_("") self.scrollToEnd() if Tasks.taskType(taskName) == "work": Projects.addAutocomplete(self.pbtnProject.titleOfSelectedItem(), taskName) else: SlackingAutocompletes.add(taskName) self.cbxInput.addItemWithObjectValue_(taskName) else: if Settings.get("showHelpMessageOnStart"): self.showStartHelpMessage() taskName = Settings.get("startPlaceholder") self.appendTask(*fh.formatTaskString(*self.tasks.add(taskName))) self.initDoneButton() @objc.IBAction def projectChange_(self, sender): """Project changed event""" if self.pbtnProject.titleOfSelectedItem(): self.cbxInput.removeAllItems() self.cbxInput.addItemsWithObjectValues_(Projects.getAutocomleteList( self.pbtnProject.titleOfSelectedItem(), SlackingAutocompletes.get())) if sender: Settings.set("selectedProject", unicode(self.pbtnProject.titleOfSelectedItem())) Settings.sync() @objc.IBAction def openLog_(self, sender): """ Open log in text editor""" os.system(Settings.get("logEditCommand") % Settings.get("logPath"))
def __init__(self): self.twitter = API() self.tasks = Tasks()
from connect import connect import asyncio from API import API from configloader import ConfigLoader from printer import Printer from bilibili import bilibili cf = ConfigLoader("color.conf", "user.conf", "bilibili.conf") printer = Printer(cf) bilibili = bilibili(cf) login = Login(bilibili, cf) login.success() bilibili = login.return_bilibili() api = API(bilibili) api.user_info() api.get_bag_list() task = OnlineHeart(bilibili) task1 = Silver(bilibili) task2 = Tasks(bilibili) task3 = LotteryResult(bilibili) task4 = connect(printer, bilibili, api) tasks = [task.run(), task1.run(), task2.run(), task4.connect(), task3.query()] loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.wait(tasks)) loop.close()
from OnlineHeart import OnlineHeart from Silver import Silver from LotteryResult import LotteryResult from Tasks import Tasks from login import Login from connect import connect import asyncio from API import API login = Login().success() API.user_info() API.get_bag_list() task = OnlineHeart() task1 = Silver() task2 = Tasks() task3 = LotteryResult() task4 = connect() tasks = [ task.run(), task1.run(), task2.run(), task4.connect(), task3.query() ] loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.wait(tasks)) loop.close()
class Room(QWidget): """ General room class """ def __init__(self, room_name, bg_image=""): super().__init__() self.title = room_name self.bg_image = bg_image self.left = 0 self.top = 0 self.width = 1080 self.height = 860 self.image_height = 810 # room button properties self.button_width = 100 self.button_height = 50 # interaction button properties self.bw = 25 self.bh = 25 self.obj_window = None self.page_window = None self.black_window = None self.initUI() def initUI(self): self.setWindowTitle(self.title) self.setGeometry(self.left, self.top, self.width, self.height) self.setBackgroundImage() self.setToolbarBackground() self.setToolbar() def setToolbarBackground(self): # Add paint widget and paint self.m = PaintWidget(self) self.m.move(0, 0) self.m.resize(self.width, self.height) def setBackgroundImage(self): label = QLabel(self) if len(self.bg_image) > 1: pixmap = QPixmap( f'../images/rooms/{self.title.lower()}_{self.bg_image}.png') label.setPixmap(pixmap) else: if config.game_time.isDay(): pixmap = QPixmap( f'../images/rooms/{self.title.lower()}_day.png') label.setPixmap(pixmap) else: pixmap = QPixmap( f'../images/rooms/{self.title.lower()}_night.png') label.setPixmap(pixmap) def setToolbar(self): spacing = 105 self.inventory_window = None self.inventoryButton = QPushButton("Inventory", self) self.inventoryButton.setGeometry(5 + spacing * 0, self.image_height, self.button_width, self.button_height) self.inventoryButton.clicked.connect(self.toInventory) self.notes_window = None self.notesButton = QPushButton("Notes", self) self.notesButton.setGeometry(5 + spacing * 1, self.image_height, self.button_width, self.button_height) self.notesButton.clicked.connect(self.toNotes) self.tasks_window = None self.tasksButton = QPushButton("Task List", self) self.tasksButton.setGeometry(5 + spacing * 2, self.image_height, self.button_width, self.button_height) self.tasksButton.clicked.connect(self.toTasks) self.phone_window = None self.phoneButton = QPushButton("Phone", self) self.phoneButton.setGeometry(5 + spacing * 3, self.image_height, self.button_width, self.button_height) self.phoneButton.clicked.connect(self.toPhone) self.save_window = None self.saveButton = QPushButton("Save", self) self.saveButton.setGeometry( self.width - 5 - self.button_width - spacing * 1, self.image_height, self.button_width, self.button_height) self.saveButton.clicked.connect(self.toSave) self.exitButton = QPushButton("Exit", self) self.exitButton.setGeometry( self.width - 5 - self.button_width - spacing * 0, self.image_height, self.button_width, self.button_height) self.exitButton.clicked.connect(self.toExit) def toInventory(self, checked): if self.inventory_window is None: self.inventory_window = Inventory() self.inventory_window.show() else: self.inventory_window.close() self.inventory_window = None def toNotes(self, checked): if self.notes_window is None: self.notes_window = Notes() self.notes_window.show() else: self.notes_window.close() self.notes_window = None def toTasks(self, checked): if self.tasks_window is None: self.tasks_window = Tasks() self.tasks_window.show() else: self.tasks_window.close() self.tasks_window = None def toPhone(self, checked): if self.phone_window is None: self.phone_window = Phone() self.phone_window.show() else: self.phone_window.close() self.phone_window = None def toSave(self, checked): """ Saves current data """ fname = self.getText() # progress as csv save_dict = { "progress": config.progress.data.to_dict(), "inventory": config.nancy.inventory, "notes": config.progress.notes } try: with open(f"../data/save_files/{fname}.json", "w") as f: data = json.dump(save_dict, f) save_status_text = "Save Successful!" except Exception as inst: print("Error -", inst) save_status_text = "Save Unsuccessful" saveStatus = QMessageBox.information(self, 'Save Game', save_status_text, QMessageBox.Ok, QMessageBox.Ok) def toExit(self, checked): """ Exits game """ checkExit = QMessageBox.question(self, 'Exit Game', "Are you sure?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if checkExit == QMessageBox.Yes: sys.exit(0) else: pass def getText(self): text, okPressed = QInputDialog.getText(self, "Save Game", "File Name:", QLineEdit.Normal, "") if okPressed and text != '': return text def toNugget(self, checked): config.progress.nugget_clicks += 1 num = randint(0, 1) if num == 0: self.playAudio("cat_meow") else: self.playAudio("cat_meow_low") def toUnused(self, checked): self.playAudio("hmm", nancy=True) def toLocked(self, checked): self.playAudio("locked", nancy=True) def toNoSleep(self, checked): self.playAudio("no_sleep", nancy=True) def toDuct(self, checked): config.progress.duct_checked += 1 self.playAudio("cat_meow") def toLightsOff(self, checked): if config.game_time.isDay() == False: # only works if at night config.progress.lights_switched += 1 if self.black_window is None: self.black_window = Black() self.black_window.show() else: self.black_window.close() self.black_window = None else: self.playAudio("hmm", nancy=True) def grabObject( self, item, ): if "bag" in config.nancy.inventory or item == "bag": if item in config.nancy.inventory: self.playAudio("have_that", nancy=True) else: if self.obj_window is None: config.nancy.inventory.append(item) self.obj_window = Object(item) self.obj_window.show() self.playAudio("got_it", nancy=True) else: self.obj_window.close() self.obj_window = None else: self.playAudio("put_that", nancy=True) def readPage(self, page_name): if self.page_window is None: self.page_window = Page(page_name, 1) self.page_window.show() else: self.page_window.close() self.page_window = None def lookAtObject(self, item): if self.obj_window is None: self.obj_window = Object(item) self.obj_window.show() else: self.obj_window.close() self.obj_window = None def playAudio(self, fname, wait=True, nancy=False): """ Plays audio file """ if nancy: filename = f"../audio/nancy/{fname}.wav" else: filename = f"../audio/{fname}.wav" data, fs = sf.read(filename, dtype='float32') sd.play(data, fs) if wait: status = sd.wait()
if cmd[0] in exitCommands: quit() elif cmd[0] in helpCommands: print(helpText) elif cmd[0] in createTableCommands: try: id = Tables.create(cmd[1]) print("Table \"{}\" created. ID = {}".format(cmd[1], id)) except: error() elif cmd[0] in createTaskCommands: try: id = Tasks.create(*cmd[1:4:], " ".join( cmd[4::])) if len(cmd) > 3 else Tasks.create( cmd[1], cmd[2]) print("Task \"{}\" created. ID = {}".format(cmd[2], id)) except: error() elif cmd[0] in listTableCommands: try: tableName = Tables.list()[int(cmd[1]) - 1][1] tasks = Tasks.getTasksFromTable(cmd[1]) printTable(tableName, tasks) except: error() elif cmd[0] in listOfTablesCommands: try:
from database import Base, Database from datetime import date from Users import Users from Feedback import Feedback from Tasks import Tasks from Teams import Teams from Meetings import Meetings # examples db = Database() db.create_table() user = Users('Alex') team = Teams() task = Tasks('database model', date(2020,7,15),'doing','lol',team) user.tasks = [task] user.teams = [team] feedback = Feedback('lmao', user, task) meeting = Meetings(date(2020,7,17), False, 'nothing notes', team) db.insert(user) db.insert(team) db.insert(task) db.insert(feedback) db.insert(meeting)
from printer import Printer from bilibili import bilibili cf = ConfigLoader("color.conf", "user.conf", "bilibili.conf") printer = Printer(cf) bilibili = bilibili(cf) login = Login(bilibili) login.success() bilibili = login.return_bilibili() api = API(bilibili) api.user_info() api.get_bag_list() task = OnlineHeart(bilibili) task1 = Silver(bilibili) task2 = Tasks(bilibili) task3 = LotteryResult(bilibili) task4 = connect(printer, bilibili, api) tasks = [ task.run(), task1.run(), task2.run(), task4.connect(), task3.query() ] loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.wait(tasks))
import os fileDir = os.path.dirname(os.path.realpath('__file__')) file_user = fileDir + "/conf/user.conf" dic_user = configloader.load_user(file_user) loop = asyncio.get_event_loop() printer = Printer(dic_user['thoroughly_log']['on']) bilibili() Statistics() rafflehandler = Rafflehandler() biliconsole.Biliconsole() task = OnlineHeart() # 在线心跳 task1 = Silver() # 领取银瓜子 task2 = Tasks( ) # 获取每日包裹奖励,签到功能,领取每日任务奖励,应援团签到,过期礼物处理,银瓜子兑换硬币,硬币换瓜子,将当前佩戴的勋章亲密度送满, task3 = LotteryResult() # 广播抽奖检测 task4 = connect() # 新的战疫分区直播间实际上没有弹幕区??? task5 = PKLottery() # 大乱斗抽奖? task6 = GuardLottery() # 上船奖励? tasks1 = [login().login_new()] loop.run_until_complete(asyncio.wait(tasks1)) # 任务 # import threading # console_thread = threading.Thread(target=biliconsole.controler) # console_thread.start() tasks = [ task.run(),