def main(): import Classes data = get_categories() for category in data.keys(): my_category = Classes.Category(category, data[category]) my_category.add_books() my_category.create_csv()
def build_portal(self, model, portal): fileName = self.directory + "/xml/" + portal.key + ".xml" numItems = commands.getoutput("grep -c \"<item\" " + fileName) numReviews = commands.getoutput("grep -c \"<review\" " + fileName) numScreenshots = commands.getoutput("grep -c \"<screenshot\" " + fileName) numCategories = commands.getoutput("grep -c \"<category\" " + fileName) numTotal = int(numItems) + int(numReviews) + int(numScreenshots) + int(numCategories) progressbar = wTree.get_widget("progressbar") progressbar.set_fraction(0) progressbar.set_text("0%") processed_categories = 0 processed_items = 0 processed_screenshots = 0 processed_reviews = 0 processed_total = 0 xml = ET.parse(fileName) root = xml.getroot() gtk.gdk.threads_enter() statusbar = wTree.get_widget("statusbar") context_id = statusbar.get_context_id("mintInstall") gtk.gdk.threads_leave() for element in root: if element.tag == "category": category = Classes.Category(portal, element.attrib["id"], element.attrib["name"], element.attrib["description"], element.attrib["vieworder"], element.attrib["parent"], element.attrib["logo"]) category.name = category.name.replace("ANDAND", "&") if self.refresh: os.chdir(self.directory + "/icons/categories") os.system("wget -nc -O" + category.key + " " + category.logo) os.chdir("/usr/lib/linuxmint/mintInstall") category.logo = gtk.gdk.pixbuf_new_from_file_at_size(self.directory + "/icons/categories/" + category.key, 16, 16) category.name = _(category.name) portal.categories.append(category) gtk.gdk.threads_enter() processed_categories = int(processed_categories) + 1 statusbar.push(context_id, _("%d categories loaded") % processed_categories) processed_total = processed_total + 1 ratio = float(processed_total) / float(numTotal) progressbar.set_fraction(ratio) pct = int(ratio * 100) progressbar.set_text(str(pct) + "%") gtk.gdk.threads_leave() elif element.tag == "item": item = Classes.Item(portal, element.attrib["id"], element.attrib["link"], element.attrib["mint_file"], element.attrib["category"], element.attrib["name"], element.attrib["description"], "", element.attrib["added"], element.attrib["views"], element.attrib["license"], element.attrib["size"], element.attrib["website"], element.attrib["repository"], element.attrib["average_rating"]) item.average_rating = item.average_rating[:3] if item.average_rating.endswith("0"): item.average_rating = item.average_rating[0] item.views = int(item.views) item.link = item.link.replace("ANDAND", "&") if self.refresh: os.chdir(self.directory + "/mintfiles") os.system("wget -nc -O" + item.key + ".mint -T10 \"" + item.mint_file + "\"") os.chdir("/usr/lib/linuxmint/mintInstall") item.mint_file = self.directory + "/mintfiles/" + item.key + ".mint" if item.repository == "": item.repository = _("Default repositories") portal.items.append(item) portal.find_category(item.category).add_item(item) gtk.gdk.threads_enter() processed_items = int(processed_items) + 1 statusbar.push(context_id, _("%d applications loaded") % processed_items) processed_total = processed_total + 1 ratio = float(processed_total) / float(numTotal) progressbar.set_fraction(ratio) pct = int(ratio * 100) progressbar.set_text(str(pct) + "%") gtk.gdk.threads_leave() elif element.tag == "screenshot": screen_item = element.attrib["item"] screen_img = element.attrib["img"] item = portal.find_item(screen_item) if item != None: try: if self.refresh: os.chdir(self.directory + "/screenshots") os.system("wget -nc -O" + screen_item + " -T10 \"" + screen_img + "\"") os.chdir("/usr/lib/linuxmint/mintInstall") item.screenshot = self.directory + "/screenshots/" + screen_item item.screenshot_url = screen_img gtk.gdk.threads_enter() processed_screenshots = int(processed_screenshots) + 1 statusbar.push(context_id, _("%d screenshots loaded") % processed_screenshots) gtk.gdk.threads_leave() except: pass gtk.gdk.threads_enter() processed_total = processed_total + 1 ratio = float(processed_total) / float(numTotal) progressbar.set_fraction(ratio) pct = int(ratio * 100) progressbar.set_text(str(pct) + "%") gtk.gdk.threads_leave() elif element.tag == "review": item = portal.find_item(element.attrib["item"]) if (item != None): review = Classes.Review(portal, item, element.attrib["rating"], element.attrib["comment"], element.attrib["user_id"], element.attrib["user_name"]) if "@" in review.username: elements = review.username.split("@") firstname = elements[0] secondname = elements[1] firstname = firstname[0:1] + "..." + firstname [-2:-1] review.username = firstname + "@" + secondname review.rating = int(review.rating) item.add_review(review) portal.reviews.append(review) gtk.gdk.threads_enter() processed_reviews = int(processed_reviews) + 1 statusbar.push(context_id, _("%d reviews loaded") % processed_reviews) gtk.gdk.threads_leave() gtk.gdk.threads_enter() processed_total = processed_total + 1 ratio = float(processed_total) / float(numTotal) progressbar.set_fraction(ratio) pct = int(ratio * 100) progressbar.set_text(str(pct) + "%") gtk.gdk.threads_leave() fetch_apt_details(model) gtk.gdk.threads_enter() progressbar.set_fraction(0) progressbar.set_text("") gtk.gdk.threads_leave()