def PunchedBack(self, backData): if backData.res.code == 200: Log.Info("签到成功") # self.UpdateUserInfo() # self.UpdateFavorites() return Status.Ok else: Log.Info("签到失败!!!, userId:{}, msg:{}".format( self.userId, backData.res.message)) return Status.Error + backData.res.message
def RegisterBack(self, backData): try: if backData.status != Status.Ok: return backData.status if backData.res.code == 200: Log.Info("注册成功: {}".format(backData.res.raw.text)) return Status.Ok else: Log.Info("注册失败!!!, userId:{}, msg:{}".format( self.userId, backData.res.message)) return Status.RegisterError + backData.res.message except Exception as es: Log.Error(es) return Status.NetError
def InitBack(self, backData): try: if backData.status == Status.Ok and backData.res.status == "ok": if len(backData.res.addresses) > 0: self.addresss = backData.res.addresses[:] # self.address = backData.res.addresses[0] Log.Info("初始化成功, Ips:{}".format(self.addresss)) self.initRes = backData.res return Status.Ok else: Log.Info("初始化失败, info:{}".format(backData.res)) return Status.Error except Exception as es: Log.Error(es) return Status.Error
def AddConvertTask(self, path, imgData, model, completeCallBack, backParam=None, cleanFlag="", filePath=""): info = QtDownloadTask() info.downloadCompleteBack = completeCallBack info.backParam = backParam self.taskId += 1 self.convertLoad[self.taskId] = info info.downloadId = self.taskId info.imgData = imgData info.model = model if path: a = hashlib.md5(path.encode("utf-8")).hexdigest() path = os.path.join( os.path.join(config.SavePath, config.CachePathDir), config.Waifu2xPath) path = os.path.join(path, a) info.cacheAndLoadPath = path info.loadPath = filePath if cleanFlag: info.cleanFlag = cleanFlag taskIds = self.convertFlag.setdefault(cleanFlag, set()) taskIds.add(self.taskId) Log.Debug("add convert info, cachePath:{}, loadPath:{}".format( info.cacheAndLoadPath, info.loadPath)) self._inQueue.put(self.taskId) Log.Info( "add convert info, taskId: {}, converId:{} backParam:{}".format( str(self.taskId), str(self.convertId), backParam)) return self.taskId
def Init(self, app): self.settingForm.SetLanguage(app, self) if config.CanWaifu2x: from waifu2x_vulkan import waifu2x_vulkan stat = waifu2x_vulkan.init() if stat < 0: self.msgForm.ShowError("Waifu2x CPU Model") waifu2x_vulkan.setDebug(True) gpuInfo = waifu2x_vulkan.getGpuInfo() cpuNum = waifu2x_vulkan.getCpuCoreNum() self.settingForm.SetGpuInfos(gpuInfo, cpuNum) self.settingForm.exec() self.settingForm.SetLanguage(app, self) waifu2x_vulkan.initSet(config.Encode, config.UseCpuNum) self.img.gpuName.setText(config.EncodeGpu) Log.Info("waifu2x init: " + str(stat) + " encode: " + str(config.Encode) + " version:" + waifu2x_vulkan.getVersion()) # self.msgForm.ShowMsg("waifu2x初始化成功\n" + waifu2x.getVersion()) else: self.msgForm.ShowError("Waifu2x can not use, " + config.ErrorMsg) self.img.checkBox.setEnabled(False) self.img.changeJpg.setEnabled(False) self.img.changePng.setEnabled(False) self.img.comboBox.setEnabled(False) self.img.SetStatus(False) config.IsOpenWaifu = 0 return
def UpdateFavoritesBack(self, backData): try: if backData.status != Status.Ok: return backData.status, self.page if backData.res.code == 200: info = backData.res.data.get("comics", {}) self.total = info["total"] self.page = info["page"] self.pages = info["pages"] self.category[self.page] = [] for bookInfo in info["docs"]: data = CategoryInfo() ToolUtil.ParseFromData(data, bookInfo) self.category[self.page].append(data) Log.Info("收藏夹加载成功, page:{}, pages:{}, num:{}".format( self.page, self.pages, self.total)) return Status.Ok, self.page else: return Status.Error + backData.res.message, self.page except Exception as e: import sys cur_tb = sys.exc_info()[ 2] # return (exc_type, exc_value, traceback) e = sys.exc_info()[1] Log.Error(cur_tb, e) return Status.Error + e, self.page
def Init(self): if config.CanWaifu2x: import waifu2x stat = waifu2x.Init(config.Encode, config.Waifu2xThread) if stat < 0: self.msgForm.ShowError("waifu2x初始化错误") gpuInfo = waifu2x.GetGpuInfo() if gpuInfo: self.settingForm.SetGpuInfos(gpuInfo) Log.Info("waifu2x初始化: " + str(stat) + " encode: " + str(config.Encode)) else: self.msgForm.ShowError("waifu2x无法启用, "+config.ErrorMsg) self.settingForm.checkBox.setEnabled(False) self.qtReadImg.frame.qtTool.checkBox.setEnabled(False) self.downloadForm.autoConvert = False self.downloadForm.radioButton.setEnabled(False) QtImgMgr().obj.radioButton.setEnabled(False) QtImgMgr().obj.changeButton.setEnabled(False) QtImgMgr().obj.changeButton.setEnabled(False) QtImgMgr().obj.comboBox.setEnabled(False) config.IsOpenWaifu = 0 self.InitUpdate() self.loginForm.Init() return
def AddConvertTask(self, url, path, imgData, completeCallBack=None, backParam=None, cleanFlag=""): info = QtDownloadTask() info.downloadCompleteBack = completeCallBack info.backParam = backParam info.url = url info.path = path self.taskId += 1 self.convertLoad[self.taskId] = info data = self.LoadConvertCachePicture(url, path) if data: info.saveData = data self.HandlerConvertTask(self.taskId, isCallBack=False) return self.taskId converId = waifu2x.Add(imgData, config.Format, config.Noise, config.Scale, self.taskId) Log.Info( "add convert info, taskId: {}, converId:{} backParam:{}".format( str(self.taskId), str(self.convertId), backParam)) if converId <= 0: return 0 if cleanFlag: info.cleanFlag = cleanFlag taskIds = self.convertFlag.setdefault(cleanFlag, set()) taskIds.add(self.taskId) return self.taskId
def RegisterBack(self, backData): try: if backData.status != Status.Ok: return backData.status if backData.res.code == 200: Log.Info("注册成功: {}".format(backData.res.raw.text)) return Status.Ok else: Log.Info("注册失败!!!, userId:{}, msg:{}".format( self.userId, backData.res.message)) return Status.RegisterError + backData.res.message except Exception as es: import sys cur_tb = sys.exc_info()[ 2] # return (exc_type, exc_value, traceback) e = sys.exc_info()[1] Log.Error(cur_tb, e) return Status.NetError
def CancelConver(self, cleanFlag): taskIds = self.convertFlag.get(cleanFlag, set()) if not taskIds: return for taskId in taskIds: if taskId in self.convertLoad: del self.convertLoad[taskId] Log.Info("cancel convert taskId, {}".format(taskIds)) self.convertFlag.pop(cleanFlag) waifu2x.Delete(list(taskIds))
def InitBack(self, backData): try: if backData.status == Status.Ok and backData.res.status == "ok": if len(backData.res.addresses) > 0: self.addresss = backData.res.addresses[:] # self.address = backData.res.addresses[0] Log.Info("初始化成功, Ips:{}".format(self.addresss)) self.initRes = backData.res return Status.Ok else: Log.Info("初始化失败, info:{}".format(backData.res)) return Status.Error except Exception as es: import sys cur_tb = sys.exc_info()[ 2] # return (exc_type, exc_value, traceback) e = sys.exc_info()[1] Log.Error(cur_tb, e) return Status.Error
def LoginBack(self, backData): try: if backData.status != Status.Ok: return backData.status if backData.res.code == 200 and backData.res.data.get("token"): self.isLogin = True self.token = backData.res.data.get("token") self.server.token = self.token Log.Info("登陆成功,userId: {}".format(self.userId)) if self.server.address: self.server.Send(req.InitAndroidReq()) return Status.Ok else: Log.Info("登陆失败!!!, userId:{}, msg:{}".format( self.userId, backData.res.message)) return Status.UserError + backData.res.message except Exception as es: Log.Error(es) return Status.NetError
def LeaveRoom(self): Log.Info("level room, Url:{}".format(self.url)) self.timer.stop() self.close() self.url = "" for info in self.msgInfo.values(): info.setParent(None) self.msgInfo.clear() self.indexMsgId = 0 self.removeMsgId = 0 return
def Init(self): stat = waifu2x.Init(config.Encode, config.Waifu2xThread) if stat < 0: self.msgForm.ShowError("waifu2x初始化错误") Log.Info("waifu2x初始化: " + str(stat) + " encode: " + str(config.Encode)) gpuInfo = waifu2x.GetGpuInfo() self.settingForm.SetGpuInfos(gpuInfo) self.InitUpdate() self.loginForm.Init() return
def CancelConver(self, cleanFlag): taskIds = self.convertFlag.get(cleanFlag, set()) if not taskIds: return for taskId in taskIds: if taskId in self.convertLoad: del self.convertLoad[taskId] Log.Info("cancel convert taskId, {}".format(taskIds)) self.convertFlag.pop(cleanFlag) if config.CanWaifu2x: from waifu2x_vulkan import waifu2x_vulkan waifu2x_vulkan.remove(list(taskIds))
def UpdateCateGoryBack(self, backData): for info in backData.res.data.get("categories", {}): if info.get("isWeb"): continue # 兼容下图片加载失败 if info.get("thumb").get('fileServer') == "https://wikawika.xyz/static/": info["thumb"]["fileServer"] = 'https://storage1.picacomic.com' newInfo = CateGoryBase() ToolUtil.ParseFromData(newInfo, info) self.idToCateGoryBase.append(newInfo) Log.Info("初始化目录成功。。。") return
def SetGpuInfos(self, gpuInfo): self.gpuInfos = gpuInfo if config.Encode >= len(self.gpuInfos): config.Encode = 0 if not self.gpuInfos: return for info in self.gpuInfos: self.encodeSelect.addItem(info) self.encodeSelect.setCurrentIndex(config.Encode) Log.Info("waifu2x GPU: " + str(self.gpuInfos)) return
def LoginBack(self, backData): try: if backData.status != Status.Ok: return backData.status if backData.res.code == 200 and backData.res.data.get("token"): self.isLogin = True self.token = backData.res.data.get("token") self.server.token = self.token Log.Info("登陆成功,userId: {}".format(self.userId)) if self.server.address: self.server.Send(req.InitAndroidReq()) return Status.Ok else: Log.Info("登陆失败!!!, userId:{}, msg:{}".format( self.userId, backData.res.message)) return Status.UserError + backData.res.message except Exception as es: import sys cur_tb = sys.exc_info()[ 2] # return (exc_type, exc_value, traceback) e = sys.exc_info()[1] Log.Error(cur_tb, e) return Status.NetError
def Init(self): # self.ClearExpiredCache() waifu2x.Set(config.Waifu2xThread, config.Encode, getattr(config, "Model" + str(config.Model))) stat = waifu2x.Init() if stat < 0: self.msgForm.ShowError("waifu2x初始化错误") Log.Info("waifu2x初始化: " + str(stat) + " encode: " + str(config.Encode)) gpuInfo = waifu2x.GetGpuInfo() self.settingForm.SetGpuInfos(gpuInfo) self.InitUpdate() self.loginForm.Init() return
def InitImageServer(self, backData): try: if backData.res.code == 200: # 选择了分流才设置 if self.server.address: self.server.imageServer = ToolUtil.GetUrlHost( backData.res.data["imageServer"]) Log.Info("初始化图片服务器成功, info:{}".format( self.server.imageServer)) return Status.Ok else: return Status.Error except Exception as es: Log.Error(es) return Status.Error
def InitImageServer(self, backData): try: if backData.res.code == 200: # 选择了分流才设置 if self.server.address: self.server.imageServer = ToolUtil.GetUrlHost( backData.res.data["imageServer"]) Log.Info("初始化图片服务器成功, info:{}".format( self.server.imageServer)) return Status.Ok else: return Status.Error except Exception as es: import sys cur_tb = sys.exc_info()[ 2] # return (exc_type, exc_value, traceback) e = sys.exc_info()[1] Log.Error(cur_tb, e) return Status.Error
def UpdateFavoritesBack(self, backData): try: if backData.status != Status.Ok: return backData.status, self.page if backData.res.code == 200: info = backData.res.data.get("comics", {}) self.total = info["total"] self.page = info["page"] self.pages = info["pages"] self.category[self.page] = [] for bookInfo in info["docs"]: data = CategoryInfo() ToolUtil.ParseFromData(data, bookInfo) self.category[self.page].append(data) Log.Info("收藏夹加载成功, page:{}, pages:{}, num:{}".format( self.page, self.pages, self.total)) return Status.Ok, self.page else: return Status.Error + backData.res.message, self.page except Exception as es: Log.Error(es) return Status.Error, self.page
def SetGpuInfos(self, gpuInfo, cpuNum): self.gpuInfos = gpuInfo config.EncodeGpu = config.SelectEncodeGpu if not self.gpuInfos: config.EncodeGpu = "CPU" config.Encode = -1 self.encodeSelect.addItem(config.EncodeGpu) self.encodeSelect.setCurrentIndex(0) return if not config.EncodeGpu or (config.EncodeGpu != "CPU" and config.EncodeGpu not in self.gpuInfos): config.EncodeGpu = self.gpuInfos[0] config.Encode = 0 index = 0 for info in self.gpuInfos: self.encodeSelect.addItem(info) if info == config.EncodeGpu: self.encodeSelect.setCurrentIndex(index) config.Encode = index index += 1 self.encodeSelect.addItem("CPU") if config.EncodeGpu == "CPU": config.Encode = -1 self.encodeSelect.setCurrentIndex(index) if config.UseCpuNum > cpuNum: config.UseCpuNum = cpuNum for i in range(cpuNum): self.threadSelect.addItem(str(i + 1)) self.threadSelect.setCurrentIndex(config.UseCpuNum) Log.Info("waifu2x GPU: " + str(self.gpuInfos) + ",select: " + str(config.EncodeGpu) + ",use cpu num: " + str(config.UseCpuNum)) return
def ReceviveMsg(self, msg): Log.Info("recv websocket info: " + msg) if msg == "3": self.RecvPong() elif msg[:2] == "42": data = json.loads(msg[2:]) if len(data) < 2: return elif data[0] == "new_connection": self._UpdateOnline(data[1]) elif data[0] == "broadcast_message": self._RecvBroadcastMsg(data[1]) elif data[0] == "broadcast_ads": self._RecvAdsMsg(data[1]) elif data[0] == "broadcast_image": # receive_notification self._RecvBroadcastMsg(data[1]) elif data[0] == "receive_notification": pass elif data[0] == "broadcast_audio": self._RecvBroadcastMsg(data[1]) else: a = data[1] return
def SetLanguage(self, app, owner): language = config.Language # Auto if language == 0: locale = QLocale.system().name() Log.Info("Init translate {}".format(locale)) if locale[:3].lower() == "zh_": if locale.lower() == "zh_cn": language = 1 else: language = 2 else: language = 3 if language == 1: app.removeTranslator(self.translate) elif language == 2: self.translate.load(":/tr_hk.qm") app.installTranslator(self.translate) else: self.translate.load(":/tr_en.qm") app.installTranslator(self.translate) owner.RetranslateUi()
def SendPing(self): msg = "2" self.socket.Send(msg) Log.Info("recv websocket info: ping")
def JoinRoom(self): Log.Info("join room, Url:{}".format(self.url)) self.LoginRoom() self.timer.start() self.loadingForm.close() return