def GetVersion(self, cur_version, package, appid): # print(request.url) # appinfo = AppInfo() # appinfo.appid= "100270155" # appinfo.package= "com.moonma.caicaile" # appinfo.version= "2.1.0" db = DBApp() db.OpenDB("DBApp.db") version = db.GetVersionByPackage(package) print(" dbversion = ", version) if version < cur_version: version = mainAppVersionHuawei.ParseVersion(appid) appinfo = AppInfo() appinfo.appid = appid appinfo.package = package appinfo.version = version if db.IsItemExist(appinfo.package) == True: db.UpdateItem(appinfo) else: # AddItem db.AddItem(appinfo) return self.GetJson(version)
def parserApp(self, html, app_url): try: appParser = AppParser(html) appInfo = AppInfo() appInfo.yjs_url = app_url res = appParser.getInfo(appInfo) if res == -1 or res == -2: #res <= 0: return None ## -1 and -2 return appInfo except Exception, data: print Exception, ":", data return None
def tracking_loop(self): active_window = None start_time = datetime.datetime.now() save_time = start_time while not self.kill_now: time.sleep(self.polling_time) window_name = self.get_active_window() if active_window != window_name: end_time = datetime.datetime.now() delta = end_time - start_time if active_window is not None: if active_window in self.tracked_applications: # update AppInfo self.tracked_applications[active_window].use_time += delta.seconds self.tracked_applications[active_window].last = end_time else: # create AppInfo instance, add it to tracked apps name = active_window.split(".")[0] info = AppInfo(name, delta.seconds, start_time, end_time) self.tracked_applications[active_window] = info # check save interval if (end_time - save_time).seconds >= self.save_interval: Tracker.write_times(self.tracked_applications) save_time = end_time start_time = end_time active_window = window_name
def __init__(self, mode: ApplicationMode, taskFilePath: str): super().__init__() self.mode = mode self.taskFilePath = taskFilePath self.initLogging() self.logger.info(f"Initializing application with mode: {mode}") SETTINGS = QtCore.QSettings(asset_manager.getMainSettingsPath(), QtCore.QSettings.IniFormat) self.appInfo = AppInfo() self.appInfo.company = SETTINGS.value("company") self.appInfo.appName = SETTINGS.value("app_name") self.mongodbHost = SETTINGS.value("mongodb_host") self.dbName = SETTINGS.value("db_name") self.hostProcessController = None self.serviceManager = None self.dbManager = None self.serviceRegistry = ServiceRegistry() dbInitTimeout = None if self.mode == ApplicationMode.GUI: self.app = QApplication([]) self.loaderWindow = LoaderWindow(self.app, self.appInfo, self.logger, self) elif self.mode == ApplicationMode.Console: dbInitTimeout = 60.0 self.consoleApp = ConsoleApp(self.appInfo, self.serviceRegistry, taskFilePath=self.taskFilePath, initTimeout=120.0) QThreadPool.globalInstance().start( qt_util.LambdaTask(self.initDataBaseManager, dbInitTimeout))
def get_app_info(self, uri): res = self.br.open(uri) data = res.get_data() soup = BeautifulSoup(data, "html5lib") info = AppInfo() info.name = soup.find(id="desktopContentBlockId").h1.text info.category = "" info.version = "" info.size = "" info.updated = "" info.price = "" info.os = "iOS" developer = soup.find(id="desktopContentBlockId").h2.text info.developer = developer.split(":")[1] if ":" in developer else developer info.language = "" desc = soup.find('div', attrs={"class" : "product-review"}).p.prettify() info.description = desc artwork = soup.find(id="left-stack").div.img["src"] info.artwork = artwork div_images = soup.find('div', attrs={"class" : "screenshots"}) images = div_images.find_all('img') info.images = [img["src"] for img in images] info.debug() return info
def get_app_info(self, uri): res = self.br.open(uri) data = res.get_data() soup = BeautifulSoup(data, "html5lib") info = AppInfo() div_viewbox = soup.find('div', attrs={"class" : "viewbox"}) info.name = div_viewbox.h2.renderContents() info.category = "" info.version = "" info.size = "" info.updated = "" info.price = "" info.os = "iOS" info.developer = "" info.language = "" desc = soup.find('div', attrs={"class" : "content"}).prettify() info.description = desc artwork = soup.find('div', attrs={"class" : "picview"}).img["src"] info.artwork = artwork div_images = soup.find('div', attrs={"class" : "content"}) images = div_images.find_all('img') info.images = [img["src"] for img in images] info.debug() return info
def get_app_info(self, uri): res = self.br.open(uri) data = res.get_data() soup = BeautifulSoup(data, "html5lib", from_encoding="utf-8") info = AppInfo() # info.name = soup.find('h1', attrs={"class" : "doc-banner-title"}).text info.name = soup.find('div', attrs={"class" : "document-title"}).text info.category = "" info.version = "" info.size = "" info.updated = "" info.price = "" info.os = "Android" # info.developer = soup.find('a', attrs={"class" : "doc-header-link"}).text info.developer = soup.find('a', attrs={"class" : "document-subtitle"}).text info.language = "" # desc = soup.find(id="doc-original-text").prettify() desc = soup.find('div', attrs={"class" : "show-more-content"}).prettify() info.description = desc # artwork = soup.find('div', attrs={"class" : "doc-banner-icon"}).img["src"] artwork = soup.find('div', attrs={"class" : "cover-container"}).img["src"] info.artwork = artwork # div_images = soup.find('div', attrs={"class" : "screenshot-carousel-content-container"}) div_images = soup.find('div', attrs={"class" : "thumbnails"}) images = div_images.find_all('img') info.images = [img["src"] for img in images] info.debug() return info
def get_wp_app_info(self, uri): res = self.br.open(uri) data = res.get_data() soup = BeautifulSoup(data, "html5lib") info = AppInfo() div_viewbox = soup.find('div', attrs={"class" : "info"}) info.name = div_viewbox.h1.text.strip() info.category = "" info.version = "" info.size = "" info.updated = "" info.price = "" info.os = "iOS" info.developer = "" info.language = "" desc = soup.find(id="discription").prettify() # not description info.description = desc artwork = soup.find('div', attrs={"class" : "deinfo"}).img["src"] info.artwork = self.get_url(uri, artwork) div_images = soup.find('div', attrs={"class" : "screenshots-container"}) images = div_images.find_all('img') info.images = [self.get_url(uri, img["src"]) for img in images] info.debug() return info
def get_android_app_info(self, uri): res = self.br.open(uri) data = res.get_data() soup = BeautifulSoup(data, "html5lib") info = AppInfo() div_viewbox = soup.find('div', attrs={"class" : "info_title"}) info.name = div_viewbox.text info.category = "" info.version = "" info.size = "" info.updated = "" info.price = "" info.os = "Android" info.developer = "" info.language = "" desc = soup.find('div', attrs={"class" : "rom_introductioncon yingyong_intro"}).prettify() info.description = desc artwork = soup.find('div', attrs={"class" : "yingyong_img"}).img["src"] info.artwork = artwork div_images = soup.find('div', attrs={"class" : "snapshot_list"}) images = div_images.find_all('img') info.images = [img["src"] for img in images] info.debug() return info
def get_ios_app_info(self, uri): res = self.br.open(uri) data = res.get_data() soup = BeautifulSoup(data, "html5lib") info = AppInfo() info.name = soup.find(id="appTitle").text.strip() info.category = "" info.version = "" info.size = "" info.updated = "" info.price = "" info.os = "iOS" info.developer = "" info.language = "" desc = soup.find(id="tab2Content").prettify() info.description = desc artwork = soup.find('img', attrs={"class" : "img175"})["src"] info.artwork = self.get_url(uri, artwork) div_images = soup.find('div', attrs={"class" : "yyxq_yyjt"}) images = div_images.find_all('img') info.images = [self.get_url(uri, img["src"]) for img in images] info.debug() return info
def new_app_info(self): info = AppInfo() info.name = "Motion Math Zoom" info.category = "Education" info.version = "2.1" info.size = "19.1MB" info.updated = "2011-12-30" info.price = "Free" info.developer = "Motion Math" info.language = "English" info.os = "iOS" info.description = "<p>An animal adventure through the world of numbers! Give your child a chance to play with numbers - they'll have a blast zooming through the number line as they master place value.</p>" info.artwork = "https://lh3.ggpht.com/LDtlOWSOvxXBDhx4XqcBBGkANPlusko8WgB80n62bpnyTUgz34gl9OlOpmflckVNBA=h230" return info
def get_app_info(self, uri): res = self.br.open(uri) data = res.get_data() soup = BeautifulSoup(data, "html5lib") info = AppInfo() div_viewbox = soup.find(id="application") info.name = div_viewbox.h1.renderContents() info.category = "" info.version = "" info.size = "" info.updated = "" info.price = "" info.os = "Windows Phone" info.developer = "" info.language = "" desc = soup.find(id="appDetails").pre.prettify() info.description = desc artwork = soup.find(id="appSummary").img["src"] info.artwork = artwork div_images = soup.find(id="screenshots") images = div_images.find_all('a') info.images = [img["href"] for img in images] info.debug() return info