diff options
| author | david <public@beloved.name> | 2018-07-17 15:52:52 +0200 | 
|---|---|---|
| committer | david <public@beloved.name> | 2018-07-17 15:52:52 +0200 | 
| commit | 1ae516a7bab1d5d9f02ab00c4ac13c219f43c1a1 (patch) | |
| tree | 1733cb2fb3b2db132b4fc4fc433fc38a68062c12 /subprojects/freeamo/src/unmaintained/sync-data/fsd-amo-bot | |
| parent | 3aa358cf718f8fc15952757cd04489b26770ac74 (diff) | |
Renamed the AMO/FSD project to FreeAMO, and rewrote its architecture.
Diffstat (limited to 'subprojects/freeamo/src/unmaintained/sync-data/fsd-amo-bot')
| -rwxr-xr-x | subprojects/freeamo/src/unmaintained/sync-data/fsd-amo-bot | 142 | 
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  | 
