feat: support extension for firefox

This commit is contained in:
ᴍᴏᴏɴD4ʀᴋ
2022-04-30 00:37:23 +08:00
parent 26de1075ee
commit 353503f90f
5 changed files with 32 additions and 5 deletions
+2
View File
@@ -97,6 +97,8 @@ func (d *Data) addSource(Sources []item.Item) {
d.sources[source] = &download.FirefoxDownload{}
case item.FirefoxLocalStorage:
d.sources[source] = &localstorage.FirefoxLocalStorage{}
case item.FirefoxExtension:
d.sources[source] = &extension.FirefoxExtension{}
}
}
}
@@ -49,3 +49,27 @@ func (c *ChromiumExtension) Parse(masterKey []byte) error {
func (c *ChromiumExtension) Name() string {
return "extension"
}
type FirefoxExtension []*extension
func (f *FirefoxExtension) Parse(masterKey []byte) error {
s, err := fileutil.ReadFile(item.TempFirefoxExtension)
if err != nil {
return err
}
defer os.Remove(item.TempFirefoxExtension)
j := gjson.Parse(s)
for _, v := range j.Get("addons").Array() {
*f = append(*f, &extension{
Name: v.Get("defaultLocale.name").String(),
Description: v.Get("defaultLocale.description").String(),
Version: v.Get("version").String(),
HomepageURL: v.Get("defaultLocale.homepageURL").String(),
})
}
return nil
}
func (f *FirefoxExtension) Name() string {
return "extension"
}