source: lliurex-store/trunk/fuentes/lliurex-store-gui/LliurexStoreManager.py @ 4104

Last change on this file since 4104 was 4104, checked in by hectorgh, 3 years ago

wip

File size: 2.1 KB
Line 
1import lliurexstore.storeManager
2import time
3import Package
4import Core
5
6class LliurexStoreManager:
7
8        def __init__(self):
9               
10                self.store=lliurexstore.storeManager.StoreManager(0)
11               
12                self.core=Core.Core.get_core()
13               
14                #http://appstream.ubuntu.com/data/xenial/universe/
15               
16       
17        #def init
18       
19        def list_sections(self):
20                action="list_sections"
21                self.store.execute_action(action,True)
22               
23                while self.store.is_action_running():
24                        time.sleep(0.2)
25               
26                print(self.store.get_status(action))
27                print(self.store.get_result(action))
28               
29                print("DONE")
30               
31               
32               
33        #def search
34       
35        def search_package(self,search_text):
36               
37                action="search"
38                self.store.execute_action(action,search_text)
39               
40                packages=[]
41               
42                while self.store.is_action_running("search"):
43                        time.sleep(0.2)
44                       
45                ret=self.store.get_status(action)
46               
47                if ret["status"]==0:
48                        data=self.store.get_result(action)
49                        for item in data["search"]:
50                               
51                                p=Package.Package(item)
52                                packages.append(p)
53               
54                return packages
55               
56        #def search_package
57       
58        def get_info(self,pkg_id):
59               
60                action="info"
61               
62                self.store.execute_action(action,pkg_id)
63                while self.store.is_action_running(action):
64                        time.sleep(0.2)
65                ret=self.store.get_status(action)
66               
67                if ret["status"]==0:
68                       
69                        data=self.store.get_result(action)
70                        p=Package.Package(data["info"][0])
71                        return p
72               
73        #def get_info
74       
75        def get_package_list(self,category_tag=None):
76               
77                action="list"
78                self.store.execute_action(action,[category_tag])
79               
80                while self.store.is_action_running():
81                        time.sleep(0.2)
82               
83                categories=set()
84               
85                banned=set()
86               
87                for item in self.core.categories_manager.categories:
88                        banned.add(item)
89               
90                for item in self.core.categories_manager.banned_categories:
91                        banned.add(item)
92                       
93               
94               
95               
96                ret=self.store.get_status(action)
97                if ret["status"]==0:
98                        for item in self.store.get_result(action)["list"]:
99                                p=Package.Package(item)
100                               
101                                for category in p["categories"]:
102                                        if category not in banned and not category.startswith("X-"):
103                                                categories.add(category)
104                               
105                               
106                print(categories)
107                print("DONE")
108               
109               
110        #def get_package_list
111
112       
113
114
115#class StoreManager
Note: See TracBrowser for help on using the repository browser.