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
				
			
		|  | @ -1,52 +0,0 @@ | |||
| #!/bin/sh | ||||
| # author jjm2473 | ||||
| 
 | ||||
| BING_BASE=http://www.bing.com | ||||
| CACHE=/var/run/argon_bing.url | ||||
| WRLOCK=/var/lock/argon_bing.lock | ||||
| 
 | ||||
| fetch_url_path() { | ||||
|     curl --fail --show-error --max-time 1 \ | ||||
|         "$BING_BASE/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US" 2>/dev/null \ | ||||
|         | jsonfilter -q -e '@.images[0].url' | ||||
| } | ||||
| 
 | ||||
| try_update() { | ||||
|     local lock="$WRLOCK" | ||||
|     exec 200>$lock | ||||
| 
 | ||||
|     if flock -n 200 >/dev/null 2>&1; then | ||||
|         local path=`fetch_url_path` | ||||
|         if [ -n "$path" ]; then | ||||
|             echo "${BING_BASE}${path}" | 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 | ||||
							
								
								
									
										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