hexapic 0.1.0
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 +7 -0
- data/.gitignore +19 -0
- data/.travis.yml +3 -0
- data/Gemfile +7 -0
- data/LICENSE.txt +22 -0
- data/README.md +1 -0
- data/Rakefile +9 -0
- data/bin/hexapic +62 -0
- data/hexapic.gemspec +30 -0
- data/lib/hexapic/collage.rb +36 -0
- data/lib/hexapic/desktop_environment.rb +25 -0
- data/lib/hexapic/downloader.rb +26 -0
- data/lib/hexapic/repository.rb +84 -0
- data/lib/hexapic/runner.rb +17 -0
- data/lib/hexapic/version.rb +3 -0
- data/lib/hexapic/wallpaper_setter.rb +39 -0
- data/lib/hexapic.rb +9 -0
- data/test/minitest_helper.rb +4 -0
- data/test/test_hexapic.rb +7 -0
- metadata +165 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e084bbb05a28b2f06235d02848a338516fb6c1bb
|
4
|
+
data.tar.gz: e291e4edd692bb7fada97295aa27d44d3e7c0a24
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2fe9318a024056074e038b8c49336e43d8b6999775e579ac5072d87e84aea1a86282849919ad90c1069173ad618bae360e64d31c3d4aa21199937032bc5ffe38
|
7
|
+
data.tar.gz: f33f86e1899247cbfb63c14efa6afe60514211b79bfdec5c2d035e88596d7f115f8fa98fd480d08c3cb240fcef8cb0b0d909297bc5ccd487d730454c86b495c8
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2014 Ilya Siganov
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# Hexapic
|
data/Rakefile
ADDED
data/bin/hexapic
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'hexapic'
|
5
|
+
rescue LoadError
|
6
|
+
require 'rubygems'
|
7
|
+
require 'hexapic'
|
8
|
+
end
|
9
|
+
|
10
|
+
include Hexapic
|
11
|
+
require 'choice'
|
12
|
+
|
13
|
+
def help
|
14
|
+
puts 'TODO: write help'
|
15
|
+
end
|
16
|
+
|
17
|
+
def set_wallpaper
|
18
|
+
tags = Choice.choices[:tags] || ENV['WALLPAPER_TAGS'] || 'nature'
|
19
|
+
repository = Choice.choices[:repository] || ENV['WALLPAPER_REPOSITPRY'] || :instagram
|
20
|
+
runner = Hexapic::Runner.new(tags)
|
21
|
+
runner.run(repository)
|
22
|
+
end
|
23
|
+
|
24
|
+
def print_version
|
25
|
+
puts Hexapic::VERSION
|
26
|
+
exit 0
|
27
|
+
end
|
28
|
+
|
29
|
+
Choice.options do
|
30
|
+
option :version do
|
31
|
+
long '--version'
|
32
|
+
short '-v'
|
33
|
+
desc 'print version and exit'
|
34
|
+
action { print_version }
|
35
|
+
end
|
36
|
+
|
37
|
+
option :repository do
|
38
|
+
long '--repository=REPOSITORY'
|
39
|
+
short '-r'
|
40
|
+
desc 'Chose where to load pictures. Chose one of flickr, instagram.'
|
41
|
+
cast Symbol
|
42
|
+
end
|
43
|
+
|
44
|
+
option :tags do
|
45
|
+
long '--tags=TAGS'
|
46
|
+
short '-t'
|
47
|
+
desc 'comma separated list of tags'
|
48
|
+
cast String
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
if Choice.choices[:tags]
|
53
|
+
begin
|
54
|
+
set_wallpaper
|
55
|
+
rescue Exception => e
|
56
|
+
puts e.message
|
57
|
+
end
|
58
|
+
elsif Choice.choices[:version]
|
59
|
+
print_version
|
60
|
+
else
|
61
|
+
help
|
62
|
+
end
|
data/hexapic.gemspec
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'hexapic/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'hexapic'
|
8
|
+
spec.version = Hexapic::VERSION
|
9
|
+
spec.authors = ['Ilya Siganov']
|
10
|
+
spec.email = ['ilya.blan4@gmail.com']
|
11
|
+
spec.summary = 'Set desktop wallpaper from social networks'
|
12
|
+
spec.description = "Pick a 6 latest pics from flickr, instagram or twitter, make collage of its and set it as Linux's background."
|
13
|
+
spec.homepage = 'https://github.com/blan4/Hexapic'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ['lib']
|
20
|
+
|
21
|
+
spec.requirements << 'imagemagick'
|
22
|
+
|
23
|
+
spec.add_development_dependency 'bundler', '~> 1.7'
|
24
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
25
|
+
spec.add_development_dependency 'minitest', '~> 5.4'
|
26
|
+
spec.add_runtime_dependency 'choice', '~> 0.1'
|
27
|
+
spec.add_runtime_dependency 'flickr.rb', '~> 1.2'
|
28
|
+
spec.add_runtime_dependency 'instagram', '~> 1.1'
|
29
|
+
spec.add_runtime_dependency 'mini_magick', '~> 4.0'
|
30
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'mini_magick'
|
2
|
+
require 'tempfile'
|
3
|
+
module Hexapic
|
4
|
+
class Collage
|
5
|
+
attr_reader :height, :width
|
6
|
+
|
7
|
+
def make(pictures)
|
8
|
+
puts 'Start collage'
|
9
|
+
if pictures.size == 1
|
10
|
+
Downloader.get pictures.first
|
11
|
+
else
|
12
|
+
images = []
|
13
|
+
file_path = Downloader.generate_file_path
|
14
|
+
pictures.map.with_index do |picture,index|
|
15
|
+
Thread.new(index) do |i|
|
16
|
+
picture = Downloader.get(picture) if picture.path.nil?
|
17
|
+
images[i] = picture.path
|
18
|
+
end
|
19
|
+
end.each{ |thr| thr.join }
|
20
|
+
|
21
|
+
puts "Make collage and save to #{file_path}"
|
22
|
+
MiniMagick::Tool::Montage.new do |m|
|
23
|
+
m << '-mode'
|
24
|
+
m << 'concatenate'
|
25
|
+
m << '-tile'
|
26
|
+
m << '3x2'
|
27
|
+
images.each{|img| m << img}
|
28
|
+
m << file_path
|
29
|
+
end
|
30
|
+
|
31
|
+
puts file_path
|
32
|
+
Repository::Picture.new('','','', file_path)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'open3'
|
2
|
+
|
3
|
+
module Hexapic
|
4
|
+
class DesktopEnvironment
|
5
|
+
DE = {'Metacity (Marco)'=> :mate, 'Xfwm4'=> :xfce4, 'Gnome3'=> :gnome3, 'Mutter (Muffin)'=> :cinnamon}
|
6
|
+
|
7
|
+
def self.which
|
8
|
+
wm_name = nil
|
9
|
+
|
10
|
+
Open3.popen3('xprop', '-root', '_NET_SUPPORTING_WM_CHECK') do |inp, out, err|
|
11
|
+
inp.close
|
12
|
+
err.close
|
13
|
+
winpdow_id = out.gets.split('#').last.strip
|
14
|
+
out.close
|
15
|
+
Open3.popen3('xprop', '-id', winpdow_id, '8s', '_NET_WM_NAME') do |inp, out, err|
|
16
|
+
inp.close
|
17
|
+
err.close
|
18
|
+
wm_name = out.gets.split('=').last.strip.gsub('"','')
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
DE[wm_name]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
module Hexapic
|
4
|
+
class Downloader
|
5
|
+
def self.get(picture)
|
6
|
+
file_path = self.generate_file_path(picture.filename)
|
7
|
+
|
8
|
+
puts "Downloading #{picture.url}"
|
9
|
+
File.open(file_path, 'w') do |f|
|
10
|
+
f.puts Net::HTTP.get_response(URI.parse(picture.url)).body
|
11
|
+
end
|
12
|
+
|
13
|
+
res = picture.clone
|
14
|
+
res.path = File.absolute_path(file_path)
|
15
|
+
res
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.generate_file_path(filename = nil)
|
19
|
+
filename ||= (0...8).map { (65 + rand(26)).chr }.join + '.jpg'
|
20
|
+
pictures_dir = File.join(Dir.home, 'Pictures', 'hexapic')
|
21
|
+
FileUtils.mkdir_p(pictures_dir) unless Dir.exists? pictures_dir
|
22
|
+
|
23
|
+
File.join(pictures_dir, filename)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require 'flickr'
|
2
|
+
require 'instagram'
|
3
|
+
require 'uri'
|
4
|
+
module Hexapic
|
5
|
+
module Repository
|
6
|
+
COUNT = 6
|
7
|
+
|
8
|
+
class TestRepository
|
9
|
+
def initialize
|
10
|
+
puts 'Using Local Dir'
|
11
|
+
end
|
12
|
+
|
13
|
+
def find_pictures(tag)
|
14
|
+
path = "/home/ilya/Pictures/wallpaper/10810006_1487374498191383_1977583548_n.jpg"
|
15
|
+
(1..COUNT).map { Picture.new(path, path, path, path) }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class InstagramRepository
|
20
|
+
CLIENT_ID = '417c3ee8c9544530b83aa1c24de2abb3'
|
21
|
+
|
22
|
+
def initialize
|
23
|
+
@instagram = Instagram.client(client_id: CLIENT_ID)
|
24
|
+
puts 'Using Instagram'
|
25
|
+
end
|
26
|
+
|
27
|
+
def find_pictures(tag)
|
28
|
+
tag = URI.encode(tag.split(',').first)
|
29
|
+
puts "Getting last images by tag #{tag}"
|
30
|
+
pics = @instagram.tag_recent_media(tag).sample(COUNT).map do |r|
|
31
|
+
url = r.images.standard_resolution.url
|
32
|
+
Picture.new(url, url, url.split('/').last)
|
33
|
+
end
|
34
|
+
|
35
|
+
raise ImagesNotFound.new("Found only #{pics.size} images. Need #{COUNT}.") if pics.size < COUNT
|
36
|
+
pics
|
37
|
+
rescue Exception => e
|
38
|
+
raise NoInternet.new(e.message)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
class FlickrRepository
|
43
|
+
API_KEY = 'bd053065ce6662cb4b2f4c0be2b65266'
|
44
|
+
|
45
|
+
def initialize
|
46
|
+
@flickr = Flickr.new(api_key: API_KEY, verify_ssl: false)
|
47
|
+
puts 'Using Flickr'
|
48
|
+
end
|
49
|
+
|
50
|
+
def find_pictures(tags)
|
51
|
+
options = {}
|
52
|
+
options[:tag_mode] = 'and'
|
53
|
+
options[:tags] = tags
|
54
|
+
options[:sort] = 'relevance'
|
55
|
+
options[:content_type] = '1'
|
56
|
+
options[:extras] = 'url_q,url_sq,url_s'
|
57
|
+
puts "Getting last images by tags #{tags}"
|
58
|
+
pics = @flickr.search(options).sample(COUNT).map do |photo|
|
59
|
+
Picture.new(photo.source('Large Square'), photo.url, photo.filename)
|
60
|
+
end
|
61
|
+
|
62
|
+
raise ImagesNotFound.new("Found only #{pics.size} images. Need #{COUNT}.") if pics.size < COUNT
|
63
|
+
pics
|
64
|
+
rescue Exception => e
|
65
|
+
raise NoInternet.new(e.message)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
class Picture
|
70
|
+
attr_accessor :url, :post_url, :filename, :path
|
71
|
+
|
72
|
+
def initialize(url, post_url, filename, path = nil)
|
73
|
+
@url = url
|
74
|
+
@post_url = post_url
|
75
|
+
@filename = filename
|
76
|
+
@path = path
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
class ImagesNotFound < StandardError; end
|
81
|
+
class NoInternet < StandardError; end
|
82
|
+
LIST = {flickr: FlickrRepository, instagram: InstagramRepository}
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Hexapic
|
2
|
+
class Runner
|
3
|
+
def initialize(tags)
|
4
|
+
@tags = tags.to_s
|
5
|
+
end
|
6
|
+
|
7
|
+
def run(repository = :instagram)
|
8
|
+
collage = Collage.new
|
9
|
+
setter = WallpaperSetter.build
|
10
|
+
repository = Repository::LIST[repository].new
|
11
|
+
pictures = repository.find_pictures(@tags)
|
12
|
+
picture = collage.make(pictures)
|
13
|
+
|
14
|
+
setter.set picture.path
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require_relative "desktop_environment"
|
2
|
+
module Hexapic
|
3
|
+
module WallpaperSetter
|
4
|
+
class XFCE4
|
5
|
+
def set(path)
|
6
|
+
command = "xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorLVDS1/workspace1/last-image -s #{path}"
|
7
|
+
system command
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
class Gnome3
|
12
|
+
def set(path)
|
13
|
+
comand = "gsettings set org.gnome.desktop.background picture-uri file:///#{path}"
|
14
|
+
system comand
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
class Mate
|
19
|
+
def set(path)
|
20
|
+
comand = "gsettings set org.mate.background picture-filename #{path}"
|
21
|
+
system comand
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class KDE4
|
26
|
+
def set(path)
|
27
|
+
comand = "dbus-send --session --dest=org.new_wallpaper.Plasmoid --type=method_call /org/new_wallpaper/Plasmoid/0 org.new_wallpaper.Plasmoid.SetWallpaper string:#{path}"
|
28
|
+
system comand
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
DE = {mate: Mate, gnome3: Gnome3, xfce4: XFCE4, kde4: KDE4}
|
33
|
+
|
34
|
+
def self.build
|
35
|
+
klass = DE[DesktopEnvironment.which]
|
36
|
+
klass.new unless klass.nil?
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/hexapic.rb
ADDED
metadata
ADDED
@@ -0,0 +1,165 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: hexapic
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ilya Siganov
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-11-15 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.7'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '5.4'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5.4'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: choice
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.1'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.1'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: flickr.rb
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.2'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.2'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: instagram
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.1'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.1'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: mini_magick
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '4.0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '4.0'
|
111
|
+
description: Pick a 6 latest pics from flickr, instagram or twitter, make collage
|
112
|
+
of its and set it as Linux's background.
|
113
|
+
email:
|
114
|
+
- ilya.blan4@gmail.com
|
115
|
+
executables:
|
116
|
+
- hexapic
|
117
|
+
extensions: []
|
118
|
+
extra_rdoc_files: []
|
119
|
+
files:
|
120
|
+
- ".gitignore"
|
121
|
+
- ".travis.yml"
|
122
|
+
- Gemfile
|
123
|
+
- LICENSE.txt
|
124
|
+
- README.md
|
125
|
+
- Rakefile
|
126
|
+
- bin/hexapic
|
127
|
+
- hexapic.gemspec
|
128
|
+
- lib/hexapic.rb
|
129
|
+
- lib/hexapic/collage.rb
|
130
|
+
- lib/hexapic/desktop_environment.rb
|
131
|
+
- lib/hexapic/downloader.rb
|
132
|
+
- lib/hexapic/repository.rb
|
133
|
+
- lib/hexapic/runner.rb
|
134
|
+
- lib/hexapic/version.rb
|
135
|
+
- lib/hexapic/wallpaper_setter.rb
|
136
|
+
- test/minitest_helper.rb
|
137
|
+
- test/test_hexapic.rb
|
138
|
+
homepage: https://github.com/blan4/Hexapic
|
139
|
+
licenses:
|
140
|
+
- MIT
|
141
|
+
metadata: {}
|
142
|
+
post_install_message:
|
143
|
+
rdoc_options: []
|
144
|
+
require_paths:
|
145
|
+
- lib
|
146
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - ">="
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
152
|
+
requirements:
|
153
|
+
- - ">="
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: '0'
|
156
|
+
requirements:
|
157
|
+
- imagemagick
|
158
|
+
rubyforge_project:
|
159
|
+
rubygems_version: 2.4.2
|
160
|
+
signing_key:
|
161
|
+
specification_version: 4
|
162
|
+
summary: Set desktop wallpaper from social networks
|
163
|
+
test_files:
|
164
|
+
- test/minitest_helper.rb
|
165
|
+
- test/test_hexapic.rb
|