#!/usr/bin/env bash # This file is part of FreeAMO # Copyright (C) 2018 David Hedlund # # FreeAMO is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # FreeAMO is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . cd "build/json/search-pages" || exit if [ "$minimum_average_daily_users" == "100000" ]; then echo "{| class=\"wikitable sortable\" border=\"1\" style=\"font-size:smaller\" ! WebExtension ! Description ! Claimed license ! Users ! Rating ! Updated ! Featured" > "$run_path/build/IceCat WebExtensions - Most Users (proposed).wiki" fi output_file="$output_file_2"; if [ "$debug" = true ]; then pv__size=$(cat "$output_file_2" | head -n 3 | wc -l) else pv__size=$(cat "$output_file_2" | wc -l) fi source "$run_path/src/main_functions" echo "Generate $pv__size .wiki pages." line=0 while IFS= read -r table; do ((++line)) if [ "$debug" = true ] && [ "$line" -le "3" ] || [ "$debug" = false ] ; then file=$(echo "$table" | awk '{print $1}'); entry=$(echo "$table" | awk '{print $2}'); source "$run_path/src/main_functions" amo_variables amo_variables__licenses if [ "$license__amo_full_name" == "BSD License" ]; then license__fsd_short_name="BSD 2Clause"; elif [ "$license__amo_full_name" == "GNU General Public License, version 3.0" ]; then license__fsd_short_name="GPLv3"; elif [ "$license__amo_full_name" == "GNU General Public License, version 2.0" ]; then license__fsd_short_name="GPLv2"; elif [ "$license__amo_full_name" == "GNU Lesser General Public License, version 3.0" ]; then license__fsd_short_name="LGPLv3"; elif [ "$license__amo_full_name" == "GNU Lesser General Public License, version 2.1" ]; then license__fsd_short_name="LGPLv2.1"; elif [ "$license__amo_full_name" == "MIT/X11 License" ]; then license__fsd_short_name="X11"; elif [ "$license__amo_full_name" == "Mozilla Public License, version 2.0" ]; then license__fsd_short_name="MPLv2.0"; elif [ "$license__amo_full_name" == "Mozilla Public License Version 1.1" ]; then license__fsd_short_name="MPLv1.1"; fi # Start description code source "$run_path/src/main_functions" locale_description="summary" do-locale locale_description="description" do-locale short_description=$(echo "$summary" | format_description) full_description=$(echo "$description" | format_description) # End description code # The homepage field is mandatory so let's remove "null" from it because we don't need to evaluat it homepage_url=$(jq .results[$entry].homepage "$file" | sed "s|en-US|enUS|;" | jq -r .enUS | sed "s|null||"); license_copyright=$(jq -r .results[$entry].authors[].name "$file" ); bayesian_average=$(jq .results[$entry].ratings.bayesian_average "$file"); bayesian_average__simple=$(printf "%.1f" "${bayesian_average//./,}"); is_featured=$(jq .results[$entry].is_featured "$file"); last_review_date=$(date +"%Y/%m/%d"); last_review_by="$mediawikibot__bot_password__Username"; submitted_by="$mediawikibot__bot_password__Username"; if [[ "$(jq .results[$entry].current_version.compatibility.seamonkey "$file")" != "null" ]]; then set_seamonkey="Iceape,"; fi if [[ "$(jq .results[$entry].current_version.compatibility.firefox "$file")" != "null" ]]; then set_icecat="IceCat,"; fi # if [[ "$(jq .results[$entry].current_version.compatibility.android $file)" != "null" ]] || [[ "$(jq .results[$entry].current_version.compatibility.mobile $file)" != "null" ]]; then # set_icecatmobile="IceCatMobile,"; # fi if [[ "$(jq .results[$entry].current_version.compatibility.thunderbird "$file")" != "null" ]]; then set_thunderbird="Icedove,"; fi # Do not list IceCatMobile extension_of=$(echo "$set_seamonkey$set_icecat$set_thunderbird" | sed "s|,$||;"); github_true=$(echo "$homepage_url" | grep "github.com") ||: # ok if grep fails if [[ $github_true != "" ]]; then # Always use https, and remove anchors homepage_url__for__vcs_checkout_command="https://github.com$(echo "$github_true" | sed "s|https://github.com||; s|http://github.com||; s|#|\\n|;" | head -n 1)"; # Remove trailing slash homepage_url__for__vcs_checkout_command="${homepage_url__for__vcs_checkout_command%/}" vcs_checkout_command="git clone $homepage_url__for__vcs_checkout_command.git"; fi if [ "$name" == "GNU LibreJS" ]; then is_gnu="Yes"; else is_gnu="No"; fi support_url=$(jq .results[$entry].support_url "$file" | sed "s|en-US|enUS|;" | jq .enUS | sed "s|^\"||; s|\"$||;"); last_updated=$(jq .results[$entry].last_updated $file | sed "s|^\"||; s|\"$||;" | sed "s|T|\n|" | head -n 1 | sed "s|-|/|g"); # List JSON structure: cat json/$file | js '.' # XML value "homepage" is not always set in AMO API, but the XML require "Homepage URL" to be set: Therfore we use the AMO page itself in Homepage URL to complete the build of the repo automatically. echo "{{Entry" > "$run_path/build/wiki/$slug.wiki" # Dash have to be removed in jq 1.3: https://github.com/stedolan/jq/issues/341 # Avoid specific versions since it's not compatible with all IceCat versions: # |Version download=https://addons.mozilla.org/firefox/downloads/latest/$id/addon-$version_id-latest.xpi # |Version identifier=$version # |Version date=$version_date # Do add these fields since we refer to the download page in the `|Version download` field that lists compatible versions # |Version identifier=52.6.0 # |Version date=2018/02/26 # |Version status=stable echo "|Name=$name |Short description=$short_description |Full description=$full_description |Homepage URL=$homepage_url |Extension of=$extension_of |VCS checkout command=$vcs_checkout_command |Documentation note=Extra data (https://addons.mozilla.org/api/v$api_version/addons/addon/$slug/): * Users: $average_daily_users * Rating: $bayesian_average__simple * Updated: $last_updated * Featured: $is_featured |Version download=https://addons.mozilla.org/en-US/firefox/addon/$slug/versions/ |Last review by=$last_review_by |Last review date=$last_review_date |Submitted by=$submitted_by |Submitted date= |Is GNU=$is_gnu }}" >> "$run_path/build/wiki/$slug.wiki" # https://addons.mozilla.org/api/v3/addons/addon/noscript/versions/1910123/ echo "{{Project license |License=$license__fsd_short_name |License copyright=$license_copyright |License note=\"License: $license__amo_full_name\" listed at https://addons.mozilla.org/en-US/firefox/addon/adblock-plus/ }}" >> "$run_path/build/wiki/$slug.wiki" if [ "$support_url" != "null" ]; then echo "{{Resource |Resource audience=Users |Resource kind=Support |Resource URL=$support_url }}" >> "$run_path/build/wiki/$slug.wiki" fi if [ "$minimum_average_daily_users" == "100000" ]; then echo "|- | [[$slug|$name]] | $short_description | [[License:$license__fsd_short_name|$license__fsd_short_name]] | $average_daily_users | $bayesian_average__simple | $last_updated | $is_featured" >> "$run_path/build/IceCat WebExtensions - Most Users (proposed).wiki" fi fi if ! $debug; then echo "foo"; fi # for pv done < "$output_file_2" # | pv__progress # End template if [ "$minimum_average_daily_users" == "100000" ]; then echo "|}" >> "$run_path/build/IceCat WebExtensions - Most Users (proposed).wiki" fi