1111
1212import requests
1313
14- from biscuit .views .extensions .extension import Extension
14+ from biscuit .views .extensions .extension import ExtensionGUI
1515
1616if typing .TYPE_CHECKING :
1717 from biscuit import App
@@ -54,7 +54,7 @@ def install_extension_from_name(self, name: str) -> bool:
5454 data = self .fetched [name ]
5555
5656 t = self .run_fetch_extension (
57- Extension (self .base .extensions_view .results , name , data )
57+ ExtensionGUI (self .base .extensions_view .results , name , data )
5858 )
5959 t .join ()
6060
@@ -136,7 +136,7 @@ def fetch_extensions(self) -> None:
136136 # TODO add further loops for folders
137137 self .fetch_queue .put ((name , data ))
138138
139- def run_fetch_extension (self , ext : Extension ) -> None :
139+ def run_fetch_extension (self , ext : ExtensionGUI ) -> None :
140140 """Called from the Extension View to fetch an extension."""
141141
142142 if ext .installed :
@@ -148,7 +148,7 @@ def run_fetch_extension(self, ext: Extension) -> None:
148148 t .start ()
149149 return t
150150
151- def fetch_extension (self , ext : Extension ) -> None :
151+ def fetch_extension (self , ext : ExtensionGUI ) -> None :
152152 """Fetch an extension from the repository."""
153153
154154 try :
@@ -158,7 +158,7 @@ def fetch_extension(self, ext: Extension) -> None:
158158 except :
159159 ext .set_unavailable ()
160160
161- def save_extension (self , ext : Extension , response : requests .Response ) -> None :
161+ def save_extension (self , ext : ExtensionGUI , response : requests .Response ) -> None :
162162 """Save a fetched extension. Saves the extension and loads it."""
163163
164164 with open (ext .file , "w" ) as fp :
@@ -170,7 +170,7 @@ def save_extension(self, ext: Extension, response: requests.Response) -> None:
170170 self .base .logger .info (f"Fetching extension '{ ext .name } ' successful." )
171171 self .base .notifications .info (f"Extension '{ ext .name } ' has been installed!" )
172172
173- def remove_extension (self , ext : Extension ) -> None :
173+ def remove_extension (self , ext : ExtensionGUI ) -> None :
174174 """Remove an extension from the system."""
175175
176176 try :
@@ -236,7 +236,7 @@ def load_extensions(self):
236236 extension_module .setup (self .base .api )
237237
238238 self .base .logger .info (f"Extension '{ ext } ' loaded." )
239- except ImportError as e :
239+ except Exception as e :
240240 self .base .logger .error (f"Failed to load extension '{ ext } ': { e } " )
241241 self .base .notifications .error (f"Extension '{ ext } ' failed: see logs." )
242242 if ext in self .installed :
@@ -246,6 +246,12 @@ def register_installed(self, name: str, extension: object) -> None:
246246 """Register an installed extension."""
247247
248248 self .installed [name ] = extension
249+ try :
250+ extension .install ()
251+ except Exception as e :
252+ print ("no install method !!!!!!!!!!!!" )
253+ # most likely the extension does not implement the install method
254+ ...
249255
250256 def queue_installed_extensions (self ) -> None :
251257 for extension_file in os .listdir (self .base .extensionsdir ):
0 commit comments