mirror of
				https://github.com/Ysurac/openmptcprouter-feeds.git
				synced 2025-03-09 15:40:03 +00:00 
			
		
		
		
	Update luci-theme-argon
This commit is contained in:
		
							parent
							
								
									663ff604d4
								
							
						
					
					
						commit
						dad8e2cfe7
					
				
					 38 changed files with 6532 additions and 5420 deletions
				
			
		
							
								
								
									
										105
									
								
								luci-theme-argon/root/usr/libexec/argon/online_wallpaper
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										105
									
								
								luci-theme-argon/root/usr/libexec/argon/online_wallpaper
									
										
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,105 @@
 | 
			
		|||
#!/bin/sh
 | 
			
		||||
# author jjm2473
 | 
			
		||||
 | 
			
		||||
# the script will be excuted when `argon.@global[0].bing_background == '1'`
 | 
			
		||||
# defaults to 'bing' to be compatible with old config
 | 
			
		||||
WEB_PIC_SRC=$(uci -q get argon.@global[0].online_wallpaper || echo 'bing')
 | 
			
		||||
# For now, the next two variables are used for wallhaven.cc with specified Tag ID
 | 
			
		||||
# API_KEY if user has an account with wallhaven and want to use their apikey to allow for more images
 | 
			
		||||
# EXACT_RESO is used for exact resolution by default, if not use 'atleast' instead of 'resolutions'
 | 
			
		||||
API_KEY=$(uci -q get argon.@global[0].use_api_key)
 | 
			
		||||
EXACT_RESO=$(uci -q get argon.@global[0].use_exact_resolution || echo '1')
 | 
			
		||||
CACHE=/var/run/argon_${WEB_PIC_SRC}.url
 | 
			
		||||
WRLOCK=/var/lock/argon_${WEB_PIC_SRC}.lock
 | 
			
		||||
 | 
			
		||||
fetch_pic_url() {
 | 
			
		||||
    case $WEB_PIC_SRC in
 | 
			
		||||
    bing)
 | 
			
		||||
        local picpath=$(curl -fks --max-time 3 \
 | 
			
		||||
            "https://www.bing.com/HPImageArchive.aspx?format=js&n=1" |
 | 
			
		||||
            jsonfilter -qe '@.images[0].url')
 | 
			
		||||
        [ -n "${picpath}" ] && echo "//www.bing.com${picpath}"
 | 
			
		||||
        ;;
 | 
			
		||||
    unsplash)
 | 
			
		||||
        if [ -z "$API_KEY" ]; then
 | 
			
		||||
            curl -fks --max-time 3 \
 | 
			
		||||
                "https://source.unsplash.com/1920x1080/daily?wallpapers" |
 | 
			
		||||
                sed -E 's#^.*href="([^?]+)\?.*$#\1?fm=jpg\&fit=crop\&w=1920\&h=1080#'
 | 
			
		||||
        else
 | 
			
		||||
            curl -fks --max-time 3 \
 | 
			
		||||
                "https://api.unsplash.com/photos/random?client_id=${API_KEY}" |
 | 
			
		||||
                jsonfilter -qe '@["urls"]["regular"]'
 | 
			
		||||
        fi
 | 
			
		||||
        ;;
 | 
			
		||||
    unsplash_*)
 | 
			
		||||
        local collection_id=${WEB_PIC_SRC#unsplash_}
 | 
			
		||||
        if [ -z "$API_KEY" ]; then
 | 
			
		||||
            curl -fks --max-time 3 \
 | 
			
		||||
                "https://source.unsplash.com/collection/${collection_id}/1920x1080" |
 | 
			
		||||
                sed -E 's#^.*href="([^?]+)\?.*$#\1?fm=jpg\&fit=crop\&w=1920\&h=1080#'
 | 
			
		||||
        else
 | 
			
		||||
            curl -fks --max-time 3 \
 | 
			
		||||
                "https://api.unsplash.com/photos/random?client_id=${API_KEY}&collections=${collection_id}" |
 | 
			
		||||
                jsonfilter -qe '@["urls"]["regular"]'
 | 
			
		||||
        fi
 | 
			
		||||
        ;;
 | 
			
		||||
    wallhaven)
 | 
			
		||||
        curl -fks --max-time 3 \
 | 
			
		||||
            "https://wallhaven.cc/api/v1/search?resolutions=1920x1080&sorting=random" |
 | 
			
		||||
            jsonfilter -qe '@.data[0].path'
 | 
			
		||||
        ;;
 | 
			
		||||
    wallhaven_*)
 | 
			
		||||
        local tag_id=${WEB_PIC_SRC#wallhaven_}
 | 
			
		||||
        local has_api_key=""
 | 
			
		||||
        [ -n "$API_KEY" ] && has_api_key="apikey=$API_KEY&" || has_api_key=""
 | 
			
		||||
        local use_reso="resolutions"
 | 
			
		||||
        [ "$EXACT_RESO" -eq "1" ] && use_reso='resolutions' || use_reso='atleast'
 | 
			
		||||
        curl -fks --max-time 3 \
 | 
			
		||||
            "https://wallhaven.cc/api/v1/search?${has_api_key}q=id%3A${tag_id}&${use_reso}=1920x1080&sorting=random" |
 | 
			
		||||
            jsonfilter -qe '@.data[0].path'
 | 
			
		||||
        ;;
 | 
			
		||||
    esac
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
try_update() {
 | 
			
		||||
    local lock="$WRLOCK"
 | 
			
		||||
    exec 200>$lock
 | 
			
		||||
 | 
			
		||||
    if flock -n 200 >/dev/null 2>&1; then
 | 
			
		||||
        local picurl=$(fetch_pic_url)
 | 
			
		||||
        if [[ "$WEB_PIC_SRC" == wallhave* ]] ; then
 | 
			
		||||
            curl -fks --max-time 3 --url "${picurl}" > /dev/null
 | 
			
		||||
        fi
 | 
			
		||||
        if [ -n "$picurl" ]; then
 | 
			
		||||
            echo "${picurl}" | tee "$CACHE"
 | 
			
		||||
        else
 | 
			
		||||
            if [ -s "$CACHE" ]; then
 | 
			
		||||
                cat "$CACHE"
 | 
			
		||||
            else
 | 
			
		||||
                touch "$CACHE"
 | 
			
		||||
            fi
 | 
			
		||||
        fi
 | 
			
		||||
        flock -u 200 >/dev/null 2>&1
 | 
			
		||||
    elif [ -s "$CACHE" ]; then
 | 
			
		||||
        cat "$CACHE"
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
get_url() {
 | 
			
		||||
    if [ -f "$CACHE" ]; then
 | 
			
		||||
        local idle_t=$(($(date '+%s') - $(date -r "$CACHE" '+%s' 2>/dev/null || echo '0')))
 | 
			
		||||
        if [ -s "$CACHE" ]; then
 | 
			
		||||
            if [ $idle_t -le 43200 ]; then
 | 
			
		||||
                cat "$CACHE"
 | 
			
		||||
                return
 | 
			
		||||
            fi
 | 
			
		||||
        else
 | 
			
		||||
            if [ $idle_t -le 120 ]; then
 | 
			
		||||
                return
 | 
			
		||||
            fi
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
    try_update
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
get_url
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue