diff --git a/README.md b/README.md
index 85e997c..38afcb9 100644
--- a/README.md
+++ b/README.md
@@ -44,6 +44,7 @@ echo "deb [signed-by=/etc/apt/keyrings/wcbing.gpg] https://packages.wcbing.top/d
|termius|termius-app
termius-beta|官方仓库|
|Sublime Text|sublime-text|[官网](https://www.sublimetext.com/download)|
|Xmind|xmind-vana|[官网](https://xmind.cn/download/)|
+|Mozilla Firefox|firefox
firefox_beta
firefox_devedition
firefox_esr
firefox_nightly
|官方仓库|
## 自行建立仓库
diff --git a/merge_latest/firefox.py b/merge_latest/firefox.py
new file mode 100644
index 0000000..f1c3542
--- /dev/null
+++ b/merge_latest/firefox.py
@@ -0,0 +1,40 @@
+import requests
+import re
+from module.merge_deb import merge_latest_deb
+
+deb_repo = "https://packages.mozilla.org/apt/"
+
+x64_deb_Packages_path = "dists/mozilla/main/binary-amd64/Packages"
+x64_deb_Packages = requests.get(deb_repo + x64_deb_Packages_path).text
+x64_debs = re.split("(?=Package: )", x64_deb_Packages)[1:]
+
+# firefox 的 Packages 按照版本升序排列,最后一个即为最新版本
+
+firefox_x64_debs = []
+firefox_beta_x64_debs = []
+firefox_devedition_x64_debs = []
+firefox_esr_x64_debs = []
+firefox_nightly_x64_debs = []
+
+for x64_deb in x64_debs:
+ if "Package: firefox\n" in x64_deb:
+ firefox_x64_debs.append(x64_deb)
+ elif "Package: firefox-beta\n" in x64_deb:
+ firefox_beta_x64_debs.append(x64_deb)
+ elif "Package: firefox-devedition\n" in x64_deb:
+ firefox_devedition_x64_debs.append(x64_deb)
+ elif "Package: firefox-esr\n" in x64_deb:
+ firefox_esr_x64_debs.append(x64_deb)
+ elif "Package: firefox-nightly\n" in x64_deb:
+ firefox_nightly_x64_debs.append(x64_deb)
+
+x64_deb_latest = (
+ firefox_x64_debs[-1]
+ + firefox_beta_x64_debs[-1]
+ + firefox_devedition_x64_debs[-1]
+ + firefox_esr_x64_debs[-1]
+ + firefox_nightly_x64_debs[-1]
+ + "\n"
+)
+
+merge_latest_deb("firefox", deb_repo, x64_deb_latest)
diff --git a/merge_latest/module/merge_deb.py b/merge_latest/module/merge_deb.py
new file mode 100644
index 0000000..013b076
--- /dev/null
+++ b/merge_latest/module/merge_deb.py
@@ -0,0 +1,14 @@
+def merge_latest_deb(name, repo, deb_latest, local_Packages_path="deb/Packages"):
+ r"""Merge latest deb packages info from a repo to a Packages file
+
+ :param name: repo name
+ :param repo: repo url, end with "/"
+ :param deb_latest: latest deb package info manually organized
+ :param local_Packages_path: local Packages file path, default is "deb/Packages"
+ :return: None
+ """
+
+ with open(local_Packages_path, "a+") as f:
+ f.write(deb_latest.replace("Filename: ", "Filename: " + repo))
+ f.close()
+ print(name + " repo: done")
diff --git a/update_gen.sh b/update_gen.sh
index 1f7297a..29f6570 100755
--- a/update_gen.sh
+++ b/update_gen.sh
@@ -10,7 +10,8 @@ apt-ftparchive packages . > Packages
# merge the Packages files of third-party repositories
cd ..
-find merge -maxdepth 1 -type f -name "*.py" -exec python3 {} \;
+find merge_latest -maxdepth 1 -type f -name "*.py" -exec python3 {} \;
+python3 merge_all/merge_all.py
# generate the Release file
cd deb