aboutsummaryrefslogtreecommitdiff
path: root/subprojects/freeamo/src/unmaintained/sync-data/fsd-amo-bot
diff options
context:
space:
mode:
Diffstat (limited to 'subprojects/freeamo/src/unmaintained/sync-data/fsd-amo-bot')
-rwxr-xr-xsubprojects/freeamo/src/unmaintained/sync-data/fsd-amo-bot142
1 files changed, 142 insertions, 0 deletions
diff --git a/subprojects/freeamo/src/unmaintained/sync-data/fsd-amo-bot b/subprojects/freeamo/src/unmaintained/sync-data/fsd-amo-bot
new file mode 100755
index 0000000..4947ae7
--- /dev/null
+++ b/subprojects/freeamo/src/unmaintained/sync-data/fsd-amo-bot
@@ -0,0 +1,142 @@
+#!/bin/bash
+
+# Copyright 2016, 2017 David Hedlund
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# https://addons-server.readthedocs.io/en/latest/topics/api/addons.html
+# Add to wiki and remove: echo "|Name=$(xmlstarlet sel -t -v "addon/name" test.xml)"
+
+SCRIPTSRC=$(readlink -f "$0" || echo "$0")
+RUN_PATH=$(dirname "${SCRIPTSRC}" || echo .)
+
+if [ ! -f /usr/bin/jq ]; then echo "/usr/bin/jq not found!"; exit=true; fi
+if [ ! -f /usr/bin/wget ]; then echo "/usr/bin/wget not found!"; exit=true; fi
+
+if [[ $exit == true ]]; then exit 1; fi
+
+
+if [ ! -d "build" ]; then mkdir -p build; fi
+
+retrive () {
+ api="$(echo "$url" | sed "s|https://addons.mozilla.org/en-US/firefox/addon/|https://addons.mozilla.org/api/v3/addons/addon/|g;")";
+ slug="$(echo "$url" | sed "s|https://addons.mozilla.org/en-US/firefox/addon/||g; s|/||g")";
+}
+
+xpi () {
+ cd build/ || exit
+ echo "$download" > tmp.txt
+ sed -i "s|/addon-|\naddon-|" tmp.txt
+ xpi=$(grep ".xpi" tmp.txt);
+ fbname=$(basename "$xpi" | cut -d. -f1);
+}
+
+
+case "$1" in
+ --get-json)
+
+ if [ ! -d "build/amo/json" ]; then mkdir -p build/amo/json; fi
+ if [ ! -d "build/amo/json.versions" ]; then mkdir -p build/amo/json.versions; fi
+ cd build/amo/ || exit
+
+ while read -r url; do
+
+ retrive
+ wget "$api" -O json/$slug.json
+ wget $api\versions/$(cat json/$slug.json | jq '.current_version.id')/ -O json.versions/$slug.json
+
+ done < ../../amo-repo.txt
+
+ # List obsoleted projects
+ find json/ -size 0 -print
+
+ ;;
+ --get-xpi-url)
+
+ cd build/ || exit
+ rm -f amo_repo-latest_download.txt
+ for i in $(find amo/json/ -maxdepth 1 -type f); do echo "https://addons.mozilla.org/firefox/downloads/latest/$(basename $i | sed "s|.json||")/addon-$(cat $i | jq '.current_version.id').xpi" >> amo_repo-latest_download.txt; done
+
+ ;;
+
+ --get-xpi)
+
+ if [ ! -d "build/amo/xpi" ]; then mkdir -p build/amo/xpi; fi
+
+ while read download; do
+
+ xpi
+
+ if [ ! -f amo/xpi/$xpi ]; then
+
+ cd amo/xpi/ || exit
+ wget $download
+ cd ..
+
+ fi
+
+ cd ..
+
+
+ done < build/amo_repo-latest_download.txt
+
+ ;;
+
+ --xpi-extract)
+
+ if [ ! -d "build/amo/xpi.extracted" ]; then mkdir -p build/amo/xpi.extracted; fi
+
+ while read download; do
+
+ xpi
+
+ if [ ! -d amo/xpi.extracted/$fbname ]; then
+
+ mkdir -p amo/xpi.extracted/$fbname
+ cd amo/xpi.extracted/$fbname || exit
+ unzip ../../xpi/$xpi
+ cd ../../
+
+ fi
+
+ cd ..
+
+ done < build/amo_repo-latest_download.txt
+
+ ;;
+
+
+ --all)
+
+ $0 --get-json
+ $0 --get-xpi-url
+ $0 --get-xpi
+ $0 --xpi-extract
+ ;;
+
+ *)
+
+ echo $"$0 [OPTION]
+
+OPTIONS
+ --all
+ --get-json
+ --get-xpi-url
+ --get-xpi
+ --xpi-extract
+ --make-xml"
+ exit 1
+
+esac
+
+exit 0