hjw3001-flickrx 0.1.0 → 0.1.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.
- data/README.rdoc +1 -1
- data/Rakefile +1 -1
- data/bin/flickrxauthorize +0 -0
- data/bin/flickrxdaily +0 -0
- data/bin/flickrxmegaadd +0 -0
- data/bin/flickrxordersets +0 -0
- data/bin/flickrxuploader +4 -0
- data/flickrx.gemspec +9 -6
- data/lib/flickrx.rb +207 -53
- data/lib/utils/AuthorizeFlickrx.rb +14 -0
- data/lib/utils/DailyFlickr.rb +53 -0
- data/lib/utils/MegaGroupAdd.rb +32 -0
- data/lib/utils/OrderPhotosets.rb +10 -0
- data/lib/utils/SimpleUploader.rb +91 -0
- data/lib/utils/utils.rb +0 -0
- metadata +32 -6
data/README.rdoc
CHANGED
data/Rakefile
CHANGED
File without changes
|
data/bin/flickrxdaily
ADDED
File without changes
|
data/bin/flickrxmegaadd
ADDED
File without changes
|
File without changes
|
data/bin/flickrxuploader
ADDED
data/flickrx.gemspec
CHANGED
@@ -1,27 +1,30 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
1
3
|
Gem::Specification.new do |s|
|
2
4
|
s.name = %q{flickrx}
|
3
|
-
s.version = "0.1.
|
5
|
+
s.version = "0.1.1"
|
4
6
|
|
5
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
6
8
|
s.authors = ["Henry Wagner"]
|
7
|
-
s.date = %q{2009-
|
9
|
+
s.date = %q{2009-03-15}
|
8
10
|
s.description = %q{Ruby implementation of Flickr API.}
|
9
11
|
s.email = %q{hjw3001@gmail.com}
|
10
|
-
s.
|
11
|
-
s.
|
12
|
+
s.executables = ["flickrxauthorize", "flickrxdaily", "flickrxmegaadd", "flickrxordersets", "flickrxuploader"]
|
13
|
+
s.extra_rdoc_files = ["bin/flickrxauthorize", "bin/flickrxdaily", "bin/flickrxmegaadd", "bin/flickrxordersets", "bin/flickrxuploader", "lib/flickrx.rb", "lib/utils/AuthorizeFlickrx.rb", "lib/utils/DailyFlickr.rb", "lib/utils/MegaGroupAdd.rb", "lib/utils/OrderPhotosets.rb", "lib/utils/SimpleUploader.rb", "lib/utils/utils.rb", "README.rdoc"]
|
14
|
+
s.files = ["bin/flickrxauthorize", "bin/flickrxdaily", "bin/flickrxmegaadd", "bin/flickrxordersets", "bin/flickrxuploader", "flickrx.gemspec", "init.rb", "lib/flickrx.rb", "lib/utils/AuthorizeFlickrx.rb", "lib/utils/DailyFlickr.rb", "lib/utils/MegaGroupAdd.rb", "lib/utils/OrderPhotosets.rb", "lib/utils/SimpleUploader.rb", "lib/utils/utils.rb", "Manifest", "Rakefile", "README.rdoc"]
|
12
15
|
s.has_rdoc = true
|
13
16
|
s.homepage = %q{http://github.com/hjw3001/flickrx}
|
14
17
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Flickrx", "--main", "README.rdoc"]
|
15
18
|
s.require_paths = ["lib"]
|
16
19
|
s.rubyforge_project = %q{flickrx}
|
17
|
-
s.rubygems_version = %q{1.
|
20
|
+
s.rubygems_version = %q{1.3.1}
|
18
21
|
s.summary = %q{Ruby implementation of Flickr API.}
|
19
22
|
|
20
23
|
if s.respond_to? :specification_version then
|
21
24
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
22
25
|
s.specification_version = 2
|
23
26
|
|
24
|
-
if
|
27
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
25
28
|
else
|
26
29
|
end
|
27
30
|
else
|
data/lib/flickrx.rb
CHANGED
@@ -630,66 +630,220 @@ class Photos < Flickr
|
|
630
630
|
}
|
631
631
|
end
|
632
632
|
|
633
|
+
# <photo id="2477196681" secret="52159254f5" server="3293" farm="4">
|
634
|
+
# <exif tagspace="TIFF" tagspaceid="1" tag="271" label="Make">
|
635
|
+
# <raw>Canon</raw>
|
636
|
+
# </exif>
|
637
|
+
# <exif tagspace="TIFF" tagspaceid="1" tag="272" label="Model">
|
638
|
+
# <raw>Canon EOS 20D</raw>
|
639
|
+
# </exif>
|
640
|
+
# <exif tagspace="TIFF" tagspaceid="1" tag="274" label="Orientation">
|
641
|
+
# <raw>1</raw>
|
642
|
+
# <clean>Horizontal (normal)</clean>
|
643
|
+
# </exif>
|
644
|
+
# <exif tagspace="TIFF" tagspaceid="1" tag="306" label="Date and Time">
|
645
|
+
# <raw>2008:05:08 22:49:53</raw>
|
646
|
+
# </exif>
|
647
|
+
# <exif tagspace="EXIF" tagspaceid="0" tag="33434" label="Exposure">
|
648
|
+
# <raw>30/1</raw>
|
649
|
+
# <clean>30 sec (30)</clean>
|
650
|
+
# </exif>
|
651
|
+
# <exif tagspace="EXIF" tagspaceid="0" tag="33437" label="Aperture">
|
652
|
+
# <raw>71/10</raw>
|
653
|
+
# <clean>f/7.1</clean>
|
654
|
+
# </exif>
|
655
|
+
# <exif tagspace="EXIF" tagspaceid="0" tag="34850" label="Exposure Program">
|
656
|
+
# <raw>1</raw>
|
657
|
+
# <clean>Manual</clean>
|
658
|
+
# </exif>
|
659
|
+
# <exif tagspace="EXIF" tagspaceid="0" tag="34855" label="ISO Speed">
|
660
|
+
# <raw>100</raw>
|
661
|
+
# </exif>
|
662
|
+
# <exif tagspace="EXIF" tagspaceid="0" tag="36867" label="Date and Time (Original)">
|
663
|
+
# <raw>2006:05:31 09:47:51</raw>
|
664
|
+
# </exif>
|
665
|
+
# <exif tagspace="EXIF" tagspaceid="0" tag="37377" label="Shutter Speed">
|
666
|
+
# <raw>-4906891/1000000</raw>
|
667
|
+
# </exif>
|
668
|
+
# <exif tagspace="EXIF" tagspaceid="0" tag="37378" label="Aperture">
|
669
|
+
# <raw>5655638/1000000</raw>
|
670
|
+
# </exif>
|
671
|
+
# <exif tagspace="EXIF" tagspaceid="0" tag="37386" label="Focal Length">
|
672
|
+
# <raw>100/1</raw>
|
673
|
+
# <clean>100 mm</clean>
|
674
|
+
# </exif>
|
675
|
+
# <exif tagspace="EXIF" tagspaceid="0" tag="40961" label="Color Space">
|
676
|
+
# <raw>1</raw>
|
677
|
+
# <clean>sRGB</clean>
|
678
|
+
# </exif>
|
679
|
+
# <exif tagspace="EXIF" tagspaceid="0" tag="40962" label="Pixel X-Dimension">
|
680
|
+
# <raw>3504</raw>
|
681
|
+
# </exif>
|
682
|
+
# <exif tagspace="EXIF" tagspaceid="0" tag="40963" label="Pixel Y-Dimension">
|
683
|
+
# <raw>2336</raw>
|
684
|
+
# </exif>
|
685
|
+
# </photo>
|
686
|
+
def get_exif(photo_id)
|
687
|
+
method = 'flickr.photos.getExif'
|
688
|
+
api_sig = _get_api_sig(
|
689
|
+
{
|
690
|
+
'method' => method,
|
691
|
+
'auth_token' => config['token'],
|
692
|
+
'photo_id' => photo_id
|
693
|
+
}
|
694
|
+
)
|
695
|
+
data = _do_get(method, {
|
696
|
+
'api_sig' => api_sig,
|
697
|
+
'auth_token' => config['token'],
|
698
|
+
'photo_id' => photo_id
|
699
|
+
}
|
700
|
+
)
|
701
|
+
doc = Document.new(data)
|
702
|
+
doc.elements.each('rsp/photo') { |photo|
|
703
|
+
exif_arr = []
|
704
|
+
photos.elements.each('exif') { |exif|
|
705
|
+
exif_arr << {
|
706
|
+
'tagspace' => exif.attributes['tagspace'],
|
707
|
+
'tagspaceid' => exif.attributes['tagspaceid'],
|
708
|
+
'tag' => exif.attributes['tag'],
|
709
|
+
'label' => exif.attributes['label'],
|
710
|
+
'raw' => exif.elements['raw'].text,
|
711
|
+
'clean' => exif.elements['clean'].text
|
712
|
+
}
|
713
|
+
}
|
714
|
+
return {
|
715
|
+
'id' => photo.attributes['id'],
|
716
|
+
'secret' => photo.attributes['secret'],
|
717
|
+
'server' => photo.attributes['server'],
|
718
|
+
'farm' => photo.attributes['farm'],
|
719
|
+
'exif' => exif_arr
|
720
|
+
}
|
721
|
+
}
|
722
|
+
end
|
723
|
+
|
633
724
|
def get_info(photo_id)
|
634
725
|
method = 'flickr.photos.getInfo'
|
635
726
|
api_sig = _get_api_sig(
|
636
727
|
{
|
637
|
-
'method'
|
638
|
-
'auth_token'
|
639
|
-
'photo_id'
|
728
|
+
'method' => method,
|
729
|
+
'auth_token' => config['token'],
|
730
|
+
'photo_id' => photo_id
|
640
731
|
}
|
641
732
|
)
|
642
733
|
data = _do_get(method, {
|
643
734
|
'api_sig' => api_sig,
|
644
|
-
'auth_token'
|
645
|
-
'photo_id'
|
735
|
+
'auth_token' => config['token'],
|
736
|
+
'photo_id' => photo_id
|
646
737
|
}
|
647
738
|
)
|
648
739
|
doc = Document.new(data)
|
649
740
|
doc.elements.each('rsp/photo') { |photo|
|
650
741
|
owner = photo.elements['owner']
|
651
|
-
|
742
|
+
visibility = photo.elements['visibility']
|
743
|
+
dates = photo.elements['dates']
|
744
|
+
permissions = photo.elements['permissions']
|
745
|
+
editability = photo.elements['editability']
|
746
|
+
usage = photo.elements['usage']
|
652
747
|
tags = photo.elements['tags']
|
653
748
|
tags_arr = []
|
654
749
|
photo.elements.each('tags/tag') { |tag|
|
655
750
|
tags_arr << {
|
656
|
-
'id'
|
657
|
-
'text'
|
751
|
+
'id' => tag.attributes['id'],
|
752
|
+
'text' => tag.text
|
658
753
|
}
|
659
754
|
}
|
660
|
-
urls = photo.elements['urls']
|
661
755
|
urls_arr = []
|
662
756
|
photo.elements.each('urls/url') { |url|
|
663
757
|
urls_arr << url.text
|
664
758
|
}
|
665
759
|
return {
|
666
|
-
'id'
|
667
|
-
'isfavorite'
|
668
|
-
'license'
|
669
|
-
'views'
|
670
|
-
'media'
|
671
|
-
'
|
672
|
-
'
|
673
|
-
'
|
674
|
-
'
|
675
|
-
'
|
676
|
-
'
|
677
|
-
'
|
678
|
-
'
|
679
|
-
'
|
760
|
+
'id' => photo.attributes['id'],
|
761
|
+
'isfavorite' => photo.attributes['isfavorite'],
|
762
|
+
'license' => photo.attributes['license'],
|
763
|
+
'views' => photo.attributes['views'],
|
764
|
+
'media' => photo.attributes['media'],
|
765
|
+
'secret' => photo.attributes['secret'],
|
766
|
+
'server' => photo.attributes['server'],
|
767
|
+
'farm' => photo.attributes['farm'],
|
768
|
+
'title' => photo.elements['title'].text,
|
769
|
+
'description' => photo.elements['description'].text,
|
770
|
+
'owner_nsid' => owner.attributes['nsid'],
|
771
|
+
'owner_username' => owner.attributes['username'],
|
772
|
+
'owner_realname' => owner.attributes['realname'],
|
773
|
+
'owner_location' => owner.attributes['location'],
|
774
|
+
'ispublic' => visibility.attributes['ispublic'],
|
775
|
+
'isfriend' => visibility.attributes['isfriend'],
|
776
|
+
'isfamily' => visibility.attributes['isfamily'],
|
777
|
+
'date_posted' => dates.attributes['posted'],
|
778
|
+
'date_taken' => dates.attributes['taken'],
|
779
|
+
'date_takengranularity' => dates.attributes['takengranularity'],
|
780
|
+
'date_lastupdate' => dates.attributes['lastupdate'],
|
781
|
+
'permission_permcomment' => permissions.attributes['permcomment'],
|
782
|
+
'permission_permaddmeta' => permissions.attributes['permaddmeta'],
|
783
|
+
'edit_cancomment' => editability.attributes['cancomment'],
|
784
|
+
'edit_canaddmeta' => editability.attributes['canaddmeta'],
|
785
|
+
'usage_candownload' => usage.attributes['candownload'],
|
786
|
+
'usage_canblog' => usage.attributes['canblog'],
|
787
|
+
'usage_canprint' => usage.attributes['canprint'],
|
788
|
+
'tags' => tags_arr,
|
789
|
+
'urls' => urls_arr
|
680
790
|
}
|
681
791
|
}
|
682
792
|
end
|
683
793
|
|
794
|
+
# <sizes canblog="1" canprint="1" candownload="1">
|
795
|
+
# <size label="Square" width="75" height="75" source="<direct url to photo>" url="<url to flickr sizes page>" media="photo"/>
|
796
|
+
# <size label="Thumbnail" width="100" height="67" source="<direct url to photo>" url="<url to flickr sizes page>" media="photo"/>
|
797
|
+
# <size label="Small" width="240" height="160" source="<direct url to photo>" url="<url to flickr sizes page>" media="photo"/>
|
798
|
+
# <size label="Medium" width="500" height="333" source="<direct url to photo>" url="<url to flickr sizes page>" media="photo"/>
|
799
|
+
# <size label="Original" width="768" height="512" source="<direct url to photo>" url="<url to flickr sizes page>" media="photo"/>
|
800
|
+
# </sizes>
|
801
|
+
def get_sizes(photo_id)
|
802
|
+
method = 'flickr.photos.getSizes'
|
803
|
+
api_sig = _get_api_sig(
|
804
|
+
{
|
805
|
+
'method' => method,
|
806
|
+
'auth_token' => config['token'],
|
807
|
+
'photo_id' => photo_id
|
808
|
+
}
|
809
|
+
)
|
810
|
+
data = _do_get(method, {
|
811
|
+
'api_sig' => api_sig,
|
812
|
+
'auth_token' => config['token'],
|
813
|
+
'photo_id' => photo_id
|
814
|
+
}
|
815
|
+
)
|
816
|
+
doc = Document.new(data)
|
817
|
+
doc.elements.each('rsp/sizes') { |sizes|
|
818
|
+
size_arr = []
|
819
|
+
sizes.elements.each('size') { |size|
|
820
|
+
size_arr << {
|
821
|
+
'label' => size.attributes['label'],
|
822
|
+
'width' => size.attributes['width'],
|
823
|
+
'height' => size.attributes['height'],
|
824
|
+
'source' => size.attributes['source'],
|
825
|
+
'url' => size.attributes['url'],
|
826
|
+
}
|
827
|
+
}
|
828
|
+
|
829
|
+
return {
|
830
|
+
'canblog' => sizes.attributes['canblog'],
|
831
|
+
'canprint' => sizes.attributes['canprint'],
|
832
|
+
'candownload' => sizes.attributes['candownload'],
|
833
|
+
'sizes' => size_arr
|
834
|
+
}
|
835
|
+
}
|
836
|
+
end
|
837
|
+
|
684
838
|
def search(user_id, tags, tag_mode, page = 0, per_page = 500)
|
685
839
|
method = 'flickr.photos.search'
|
686
840
|
data = _do_get(method, {
|
687
841
|
'api_key' => @config['api_key'],
|
688
842
|
'user_id' => user_id,
|
689
|
-
'tags'
|
690
|
-
'tag_mode'
|
691
|
-
'page'
|
692
|
-
'per_page'
|
843
|
+
'tags' => tags,
|
844
|
+
'tag_mode' => tag_mode,
|
845
|
+
'page' => page,
|
846
|
+
'per_page' => per_page
|
693
847
|
|
694
848
|
}
|
695
849
|
)
|
@@ -697,14 +851,14 @@ class Photos < Flickr
|
|
697
851
|
photos = []
|
698
852
|
doc.elements.each('rsp/photos/photo') { |photo|
|
699
853
|
photos << {
|
700
|
-
'id'
|
701
|
-
'owner'
|
854
|
+
'id' => photo.attributes['id'],
|
855
|
+
'owner' => photo.attributes['owner']
|
702
856
|
}
|
703
857
|
}
|
704
858
|
return photos
|
705
859
|
end
|
706
860
|
|
707
|
-
|
861
|
+
def removeTag(auth_token, tag_id)
|
708
862
|
method = 'flickr.photos.removeTag'
|
709
863
|
api_sig = _get_api_sig(
|
710
864
|
{
|
@@ -722,7 +876,7 @@ class Photos < Flickr
|
|
722
876
|
if data
|
723
877
|
return true
|
724
878
|
end
|
725
|
-
|
879
|
+
end
|
726
880
|
|
727
881
|
end
|
728
882
|
|
@@ -750,15 +904,15 @@ class People < Flickr
|
|
750
904
|
}
|
751
905
|
doc.elements.each('rsp/photos/photo') { |photo|
|
752
906
|
photos << {
|
753
|
-
'id'
|
907
|
+
'id' => photo.attributes['id'],
|
754
908
|
'owner' => photo.attributes['owner'],
|
755
|
-
'secret'
|
756
|
-
'server'
|
757
|
-
'farm'
|
909
|
+
'secret' => photo.attributes['secret'],
|
910
|
+
'server' => photo.attributes['server'],
|
911
|
+
'farm' => photo.attributes['farm'],
|
758
912
|
'title' => photo.attributes['title'],
|
759
|
-
'ispublic'
|
760
|
-
'isfriend'
|
761
|
-
'isfamily'
|
913
|
+
'ispublic' => photo.attributes['ispublic'],
|
914
|
+
'isfriend' => photo.attributes['isfriend'],
|
915
|
+
'isfamily' => photo.attributes['isfamily']
|
762
916
|
}
|
763
917
|
}
|
764
918
|
page = page + 1
|
@@ -802,25 +956,25 @@ class Upload < Flickr
|
|
802
956
|
api_sig = _get_api_sig(
|
803
957
|
{
|
804
958
|
'auth_token' => config['token'],
|
805
|
-
'title'
|
806
|
-
'description'
|
807
|
-
'tags'
|
808
|
-
'is_public'
|
809
|
-
'is_family'
|
810
|
-
'is_friend'
|
959
|
+
'title' => title,
|
960
|
+
'description' => description,
|
961
|
+
'tags' => tags,
|
962
|
+
'is_public' => is_public,
|
963
|
+
'is_family' => is_family,
|
964
|
+
'is_friend' => is_friend
|
811
965
|
}
|
812
966
|
)
|
813
967
|
params = {
|
814
|
-
'api_key'
|
815
|
-
'api_sig'
|
968
|
+
'api_key' => config['api_key'],
|
969
|
+
'api_sig' => api_sig,
|
816
970
|
'auth_token' => config['token'],
|
817
|
-
'photo'
|
818
|
-
'title'
|
819
|
-
'description'
|
820
|
-
'tags'
|
821
|
-
'is_public'
|
822
|
-
'is_family'
|
823
|
-
'is_friend'
|
971
|
+
'photo' => file,
|
972
|
+
'title' => title,
|
973
|
+
'description' => description,
|
974
|
+
'tags' => tags,
|
975
|
+
'is_public' => is_public,
|
976
|
+
'is_family' => is_family,
|
977
|
+
'is_friend' => is_friend
|
824
978
|
}
|
825
979
|
query, header = _prepare_query(params)
|
826
980
|
file.close
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'flickx'
|
2
|
+
|
3
|
+
photo = PhotoSets.new
|
4
|
+
|
5
|
+
frob = photo.get_frob
|
6
|
+
link = photo.get_login_url(frob, 'read')
|
7
|
+
|
8
|
+
puts
|
9
|
+
puts link
|
10
|
+
puts
|
11
|
+
puts "copy and paste the above url into your browser then hit enter after viewing the page"
|
12
|
+
gets
|
13
|
+
|
14
|
+
puts photo.get_token(frob)
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'flickrx'
|
2
|
+
require 'c:/bat/WaldoFlickr'
|
3
|
+
|
4
|
+
# DailyFlickr.rb
|
5
|
+
#
|
6
|
+
# Randomly add a photo each time the program is run to the following Flickr groups
|
7
|
+
#
|
8
|
+
# 649122@N23 - The Anything Group...
|
9
|
+
# 67417927@N00 - anything and everything
|
10
|
+
# 76921467@N00 - Anything Goes!
|
11
|
+
# 86199631@N00 - Anything Goes :)
|
12
|
+
# 76649513@N00 - ANYTHING ALLOWED!!!!!!
|
13
|
+
# 38436807@N00 - the FlickrToday (only 1 pic per day)
|
14
|
+
# 95309787@N00 - Flickritis
|
15
|
+
# 34427469792@N01 - FlickrCentral
|
16
|
+
# 33968254@N00 - Anything and Everything
|
17
|
+
# 96458800@N00 - Flickr Underappreciated (4 per day)
|
18
|
+
|
19
|
+
class DailyFlickr
|
20
|
+
attr_accessor :group, :cache
|
21
|
+
|
22
|
+
def initialize
|
23
|
+
@group = Flickrx::Group.new
|
24
|
+
waldo = WaldoFlickr.new
|
25
|
+
@cache = waldo.cleanFilenames(waldo.loadCache)
|
26
|
+
end
|
27
|
+
|
28
|
+
def add_photos
|
29
|
+
group.poolAdd(cache.random, '649122@N23')
|
30
|
+
group.poolAdd(cache.random, '67417927@N00')
|
31
|
+
group.poolAdd(cache.random, '76921467@N00')
|
32
|
+
group.poolAdd(cache.random, '86199631@N00')
|
33
|
+
group.poolAdd(cache.random, '76649513@N00')
|
34
|
+
group.poolAdd(cache.random, '38436807@N00')
|
35
|
+
group.poolAdd(cache.random, '95309787@N00')
|
36
|
+
group.poolAdd(cache.random, '34427469792@N01')
|
37
|
+
group.poolAdd(cache.random, '33968254@N00')
|
38
|
+
group.poolAdd(cache.random, '96458800@N00')
|
39
|
+
group.poolAdd(cache.random, '96458800@N00')
|
40
|
+
group.poolAdd(cache.random, '96458800@N00')
|
41
|
+
group.poolAdd(cache.random, '96458800@N00')
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
class Array
|
47
|
+
def random
|
48
|
+
self[rand(self.length)]
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
daily = DailyFlickr.new
|
53
|
+
daily.add_photos
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'WaldoFlickr'
|
2
|
+
|
3
|
+
class MegaPhotoAdd
|
4
|
+
attr_accessor :group, :cache
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@group = Group.new
|
8
|
+
waldo = WaldoFlickr.new
|
9
|
+
@cache = waldo.cleanFilenames(waldo.loadCache)
|
10
|
+
end
|
11
|
+
|
12
|
+
def add_all_public_photos
|
13
|
+
cache.each_with_index {|photo, i|
|
14
|
+
puts i
|
15
|
+
|
16
|
+
add_to_group(photo, '20759249@N00') # 10 Million Photos
|
17
|
+
add_to_group(photo, '24772180@N00') # 1 day we'll have the most photos on Flickr
|
18
|
+
add_to_group(photo, '40275508@N00') # Please join
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
def add_to_group(photo_id, group_id)
|
23
|
+
begin
|
24
|
+
group.poolAdd(photo_id, group_id)
|
25
|
+
rescue Exception
|
26
|
+
puts "#{photo_id} already in group #{group_id}"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
mega = MegaPhotoAdd.new
|
32
|
+
mega.add_all_public_photos
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require 'c:/bat/hwflickr'
|
2
|
+
require 'yaml'
|
3
|
+
require 'shorturl'
|
4
|
+
require 'twitter'
|
5
|
+
|
6
|
+
class SimpleUploader
|
7
|
+
attr_reader :photo, :ps, :group, :uploader, :config, :twitter
|
8
|
+
|
9
|
+
def initialize
|
10
|
+
@photo = Photos.new
|
11
|
+
@ps = PhotoSets.new
|
12
|
+
@group = Group.new
|
13
|
+
@uploader = Upload.new
|
14
|
+
@config = load_config
|
15
|
+
@twitter = create_or_find_config
|
16
|
+
end
|
17
|
+
|
18
|
+
def process
|
19
|
+
# jpgfiles = File.join('./', "*.jpg")
|
20
|
+
files = Dir.glob('*.jpg')
|
21
|
+
|
22
|
+
photosets = ps.getList
|
23
|
+
photoset = photosets[config['setname']]
|
24
|
+
|
25
|
+
files.each { |filename|
|
26
|
+
if (File.exists?(filename))
|
27
|
+
begin
|
28
|
+
#upload(filename)
|
29
|
+
exp_hap = false
|
30
|
+
rescue Exception
|
31
|
+
puts "exception on #{filename} try again"
|
32
|
+
print "An error occurred: ",$!, "\n"
|
33
|
+
exp_hap = true
|
34
|
+
end while exp_hap == true
|
35
|
+
else
|
36
|
+
puts "File #{filename} does not exist"
|
37
|
+
end
|
38
|
+
}
|
39
|
+
|
40
|
+
# Create TinyURL
|
41
|
+
tinyurl = ShortURL.shorten("http://www.flickr.com/photos/henrywagner/sets/#{photoset['id']}/")
|
42
|
+
|
43
|
+
# Post link to Twitter
|
44
|
+
message = "added #{files.size} photos to Flickr set '#{config['setname']}' at #{tinyurl}"
|
45
|
+
Twitter::Base.new(twitter['email'], twitter['password']).post(message)
|
46
|
+
end
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
def upload_file(filename)
|
51
|
+
# If we already have a flickr id, the photo just needs to be replaced
|
52
|
+
photoid = uploader.upload(filename, filename, config['description'], config['tags'], config['is_public'], config['is_friend'], config['is_family'])
|
53
|
+
# If photoset doesn't exist, create it and add the photo as the set thumbnail
|
54
|
+
if (photoset == nil)
|
55
|
+
photoset = ps.create(config['setname'], nil, photoid).first
|
56
|
+
# Otherwise, the photoset already exists, so just add the photo to it
|
57
|
+
else
|
58
|
+
ps.addPhoto(photoset['id'], photoid)
|
59
|
+
end
|
60
|
+
|
61
|
+
#if (config['is_public'] == '1')
|
62
|
+
# Add the photo to the default groups
|
63
|
+
group.poolAdd(photoid, '20759249@N00') # 10 Million Photos
|
64
|
+
group.poolAdd(photoid, '24772180@N00') # 1 day we'll have the most photos on Flickr
|
65
|
+
group.poolAdd(photoid, '40275508@N00') # Please join
|
66
|
+
#end
|
67
|
+
|
68
|
+
puts photoid
|
69
|
+
end
|
70
|
+
|
71
|
+
def load_config
|
72
|
+
begin
|
73
|
+
YAML::load open('data.yml')
|
74
|
+
rescue
|
75
|
+
puts "Trouble loading config"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def create_or_find_config
|
80
|
+
home = ENV['HOME'] || ENV['USERPROFILE'] || ENV['HOMEPATH']
|
81
|
+
begin
|
82
|
+
config = YAML::load open(home + "/.twitter")
|
83
|
+
rescue
|
84
|
+
puts "Trouble loading config"
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
simple_uploader = SimpleUploader.new
|
91
|
+
simple_uploader.process
|
data/lib/utils/utils.rb
ADDED
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hjw3001-flickrx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henry Wagner
|
@@ -9,26 +9,52 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-03-15 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
16
16
|
description: Ruby implementation of Flickr API.
|
17
17
|
email: hjw3001@gmail.com
|
18
|
-
executables:
|
19
|
-
|
18
|
+
executables:
|
19
|
+
- flickrxauthorize
|
20
|
+
- flickrxdaily
|
21
|
+
- flickrxmegaadd
|
22
|
+
- flickrxordersets
|
23
|
+
- flickrxuploader
|
20
24
|
extensions: []
|
21
25
|
|
22
26
|
extra_rdoc_files:
|
27
|
+
- bin/flickrxauthorize
|
28
|
+
- bin/flickrxdaily
|
29
|
+
- bin/flickrxmegaadd
|
30
|
+
- bin/flickrxordersets
|
31
|
+
- bin/flickrxuploader
|
23
32
|
- lib/flickrx.rb
|
33
|
+
- lib/utils/AuthorizeFlickrx.rb
|
34
|
+
- lib/utils/DailyFlickr.rb
|
35
|
+
- lib/utils/MegaGroupAdd.rb
|
36
|
+
- lib/utils/OrderPhotosets.rb
|
37
|
+
- lib/utils/SimpleUploader.rb
|
38
|
+
- lib/utils/utils.rb
|
24
39
|
- README.rdoc
|
25
40
|
files:
|
41
|
+
- bin/flickrxauthorize
|
42
|
+
- bin/flickrxdaily
|
43
|
+
- bin/flickrxmegaadd
|
44
|
+
- bin/flickrxordersets
|
45
|
+
- bin/flickrxuploader
|
46
|
+
- flickrx.gemspec
|
26
47
|
- init.rb
|
27
48
|
- lib/flickrx.rb
|
49
|
+
- lib/utils/AuthorizeFlickrx.rb
|
50
|
+
- lib/utils/DailyFlickr.rb
|
51
|
+
- lib/utils/MegaGroupAdd.rb
|
52
|
+
- lib/utils/OrderPhotosets.rb
|
53
|
+
- lib/utils/SimpleUploader.rb
|
54
|
+
- lib/utils/utils.rb
|
55
|
+
- Manifest
|
28
56
|
- Rakefile
|
29
57
|
- README.rdoc
|
30
|
-
- Manifest
|
31
|
-
- flickrx.gemspec
|
32
58
|
has_rdoc: true
|
33
59
|
homepage: http://github.com/hjw3001/flickrx
|
34
60
|
post_install_message:
|