bingwallpaper 0.6.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.ruby-version +1 -0
- data/README.md +5 -4
- data/bin/bingwallpaper +35 -0
- data/bingwallpaper.gemspec +3 -0
- data/lib/bingwallpaper/image.rb +20 -5
- data/lib/bingwallpaper/version.rb +1 -1
- metadata +46 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cbe0ff2f5121c0ed61a1409c03032217f3dcd9c1
|
4
|
+
data.tar.gz: 7e93502c56083636d162b1bbdf99150991edb065
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c159dee737b17aa458bcb3106a95e5e8fb0c224ef62729abb59fb8a1a77e557901e40e748336b1e1c108278e74d66378633ba96f47c37631518a95c5150a4421
|
7
|
+
data.tar.gz: 84be0238face2db9f554d6c3f3dcd579b7b7f257e767859c8578b149d2ad1ec297deff4a41bcdfed6287b1c804fe315c6e3fe8abf8141614d92f844102057643
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.5.3
|
data/README.md
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
|
1
2
|
[](http://badge.fury.io/rb/bingwallpaper)
|
2
3
|
|
3
4
|
# Bing Wallpaper
|
@@ -9,10 +10,10 @@ wallpaper.
|
|
9
10
|
## How It Works
|
10
11
|
|
11
12
|
I wrote this script with my own environment in mind, so it's pretty
|
12
|
-
simple-minded. It fetches the XML describing today's image, then fetches
|
13
|
-
|
14
|
-
|
15
|
-
3.14.2 and nowhere else.
|
13
|
+
simple-minded. It fetches the XML describing today's image, then fetches the
|
14
|
+
1920x1200 sized version if it's available, the lower resolution version if not.
|
15
|
+
Lastly, it uses [Feh][1] or Gnome to set the wallpaper for your environment.
|
16
|
+
I've tested it in [i3][2] and Gnome 3.14.2 and nowhere else.
|
16
17
|
|
17
18
|
## Using the Script
|
18
19
|
|
data/bin/bingwallpaper
CHANGED
@@ -8,6 +8,7 @@
|
|
8
8
|
require "bingwallpaper"
|
9
9
|
require "logger"
|
10
10
|
require "optparse"
|
11
|
+
require "yaml"
|
11
12
|
|
12
13
|
# setup a logger
|
13
14
|
logger = Logger.new(STDOUT)
|
@@ -42,6 +43,18 @@ end.parse!
|
|
42
43
|
# create an instance and set the wallpaper
|
43
44
|
bingImage = Bingwallpaper::Image.new
|
44
45
|
|
46
|
+
# bail out if we've already downloaded today's image
|
47
|
+
downloaded_data_path = bingImage.image_storage_path ".bingwallpaper"
|
48
|
+
if File.exist? downloaded_data_path
|
49
|
+
|
50
|
+
downloaded_data = YAML.load_file downloaded_data_path
|
51
|
+
if downloaded_data[:downloaded] == Date.today
|
52
|
+
|
53
|
+
logger.info "Image of the day already downloaded and set"
|
54
|
+
exit 0
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
45
58
|
begin
|
46
59
|
|
47
60
|
# compute the URL for the image of the data data
|
@@ -54,12 +67,20 @@ begin
|
|
54
67
|
image_path = bingImage.image_storage_path image_data[0][:file_name]
|
55
68
|
fallback_image_path = bingImage.image_storage_path image_data[0][:fallback_file_name]
|
56
69
|
|
70
|
+
# path of the downloaded file
|
71
|
+
downloaded_data = nil
|
72
|
+
|
57
73
|
# try the hi-res image
|
58
74
|
if !image_path.exist?
|
59
75
|
|
60
76
|
begin
|
61
77
|
|
62
78
|
bingImage.download_image image_path, image_data[0][:links][:url]
|
79
|
+
downloaded_data = {
|
80
|
+
:path => image_path,
|
81
|
+
:quality => :high,
|
82
|
+
:downloaded => Date.today
|
83
|
+
}
|
63
84
|
rescue Exception => exception
|
64
85
|
logger.info "I couldn't download the hi-resolution image of the day..."
|
65
86
|
logger.info "I couldn't load " + image_data[0][:links][:url]
|
@@ -73,12 +94,24 @@ begin
|
|
73
94
|
begin
|
74
95
|
|
75
96
|
bingImage.download_image fallback_image_path, image_data[0][:links][:fallback_url]
|
97
|
+
downloaded_data = {
|
98
|
+
:path => fallback_image_path,
|
99
|
+
:quality => :low,
|
100
|
+
:downloaded => Date.today
|
101
|
+
}
|
76
102
|
rescue Exception => exception
|
77
103
|
logger.info "I couldn't download the low-resolution image of the day..."
|
78
104
|
logger.info "I couldn't load " + image_data[0][:links][:url]
|
79
105
|
end
|
80
106
|
end
|
81
107
|
|
108
|
+
# update our downloaded data
|
109
|
+
if downloaded_data
|
110
|
+
File.open(downloaded_data_path, "w+") do |file_out|
|
111
|
+
file_out.write downloaded_data.to_yaml
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
82
115
|
# set the wallpaper
|
83
116
|
if image_path.exist?
|
84
117
|
|
@@ -124,3 +157,5 @@ rescue Exception => exception
|
|
124
157
|
logger.error "The problems was: " + exception.message
|
125
158
|
exit 1
|
126
159
|
end
|
160
|
+
|
161
|
+
exit 0
|
data/bingwallpaper.gemspec
CHANGED
@@ -22,4 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_dependency "OptionParser", "~> 0.5.1"
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.6"
|
24
24
|
spec.add_development_dependency "rake"
|
25
|
+
spec.add_development_dependency "pry", "~> 0.10.3"
|
26
|
+
spec.add_development_dependency "pry-doc", ">= 0.8.0"
|
27
|
+
spec.add_development_dependency "method_source", ">= 0.8.2"
|
25
28
|
end
|
data/lib/bingwallpaper/image.rb
CHANGED
@@ -45,7 +45,8 @@ module Bingwallpaper
|
|
45
45
|
# market:: The market to use when fetching
|
46
46
|
# index:: Index of the image to fetch (0 = today)
|
47
47
|
# storage_path:: Path to directory for storing images
|
48
|
-
def initialize(market = DEFAULT_MARKET, index = DEFAULT_INDEX,
|
48
|
+
def initialize(market = DEFAULT_MARKET, index = DEFAULT_INDEX,
|
49
|
+
storage_path = DEFAULT_STORAGE_PATH)
|
49
50
|
|
50
51
|
@market = market
|
51
52
|
@index = index
|
@@ -66,7 +67,8 @@ module Bingwallpaper
|
|
66
67
|
# Returns the data URL for the image of the day.
|
67
68
|
def get_data_url
|
68
69
|
|
69
|
-
return build_url(PATH + '?format=' + FORMAT + '&idx=' + @index.to_s +
|
70
|
+
return build_url(PATH + '?format=' + FORMAT + '&idx=' + @index.to_s +
|
71
|
+
'&n=1' + '&mkt=' + @market)
|
70
72
|
end
|
71
73
|
|
72
74
|
# Parses the XML data and returns a hash of image information.
|
@@ -79,8 +81,8 @@ module Bingwallpaper
|
|
79
81
|
doc.xpath('//images/image').map do |image|
|
80
82
|
|
81
83
|
# figure out the hi-res image path
|
82
|
-
image_path = image.xpath('url').text.sub(
|
83
|
-
|
84
|
+
image_path = image.xpath('url').text.sub(
|
85
|
+
image.xpath('url').text.rpartition("_").last, '1920x1200.jpg')
|
84
86
|
|
85
87
|
# store the other path as fallback
|
86
88
|
image_fallback_path = image.xpath('url').text.to_s
|
@@ -89,12 +91,25 @@ module Bingwallpaper
|
|
89
91
|
{:links => {:url => build_url(image_path),
|
90
92
|
:fallback_url => build_url(image_fallback_path),
|
91
93
|
:copyright_url => image.xpath('copyrightlink').text},
|
92
|
-
:file_name => Pathname.new(image_path).basename.to_s,
|
94
|
+
:file_name => cleanup_filename(Pathname.new(image_path).basename.to_s),
|
93
95
|
:fallback_file_name => Pathname.new(image_fallback_path).basename.to_s,
|
94
96
|
:copyright => image.xpath('copyright').text}
|
95
97
|
end
|
96
98
|
end
|
97
99
|
|
100
|
+
# Parses out a nice filename from the icky URL.
|
101
|
+
#
|
102
|
+
# filename:: Filename from the URL
|
103
|
+
def cleanup_filename(filename)
|
104
|
+
matches = /[A-Za-z0-9_-]+\.jpg/.match(filename)
|
105
|
+
|
106
|
+
if matches.length > 0
|
107
|
+
return matches[0]
|
108
|
+
end
|
109
|
+
|
110
|
+
return filename
|
111
|
+
end
|
112
|
+
|
98
113
|
# Returns a Pathname with location where the image from the
|
99
114
|
# provided Bing image hash will be stored.
|
100
115
|
#
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bingwallpaper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cmiles74
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-03-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -66,6 +66,48 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.10.3
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.10.3
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pry-doc
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.8.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.8.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: method_source
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.8.2
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.8.2
|
69
111
|
description: This script downloads the "Image of the Day" and then uses Feh or Gnome
|
70
112
|
to set your desktop wallpaper. More information available at https://github.com/cmiles74/bingwallpaper/.
|
71
113
|
email:
|
@@ -76,6 +118,7 @@ extensions: []
|
|
76
118
|
extra_rdoc_files: []
|
77
119
|
files:
|
78
120
|
- ".gitignore"
|
121
|
+
- ".ruby-version"
|
79
122
|
- Gemfile
|
80
123
|
- LICENSE.txt
|
81
124
|
- README.md
|
@@ -105,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
148
|
version: '0'
|
106
149
|
requirements: []
|
107
150
|
rubyforge_project:
|
108
|
-
rubygems_version: 2.
|
151
|
+
rubygems_version: 2.4.8
|
109
152
|
signing_key:
|
110
153
|
specification_version: 4
|
111
154
|
summary: Sets your wallpaper to Bing's "Image of the Day"
|