ayadn 1.3.2 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/lib/ayadn/action.rb +100 -34
- data/lib/ayadn/app.rb +10 -5
- data/lib/ayadn/cnx.rb +8 -0
- data/lib/ayadn/fileops.rb +30 -0
- data/lib/ayadn/post.rb +102 -9
- data/lib/ayadn/status.rb +10 -0
- data/lib/ayadn/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6276f752eb491dd844708b87857de9e31ce9e908
|
4
|
+
data.tar.gz: 53d08a3828136827d3125f47cdd340d924b6d55f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b629af3a71e42b0e9fa1b4d6082dba04cc744ba5effa5609eca9d0cc3f8bbd8ad14ca5eab57144323c6c1acd9f03806250d00009f8bc816fec2d52611365964
|
7
|
+
data.tar.gz: a4c36beb941ee96e3215783ec75fca897e62e0708e09a4238016d4ea2e6088b0073adf7c1d4e1447ecf407b39077b0d7e171f723101c49fcaf24cec5275ef86d
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
# 1.4.0 - 'Florian'
|
2
|
+
|
3
|
+
- New feature: embed one or several pictures within a post (in write, post, reply, and pm)
|
4
|
+
- Nowplaying inserts preview URL and album art from iTunes Store (you can prevent this with: `--no-url`)
|
5
|
+
|
1
6
|
# 1.3.2 - 'Max'
|
2
7
|
|
3
8
|
- Fixed: Global stream crashed if NiceRank was enabled but unreachable
|
data/lib/ayadn/action.rb
CHANGED
@@ -732,22 +732,6 @@ module Ayadn
|
|
732
732
|
end
|
733
733
|
end
|
734
734
|
|
735
|
-
def post(args)
|
736
|
-
begin
|
737
|
-
@view.clear_screen
|
738
|
-
puts Status.posting
|
739
|
-
resp = Post.new.post(args)
|
740
|
-
FileOps.save_post(resp) if Settings.options[:backup][:auto_save_sent_posts]
|
741
|
-
@view.clear_screen
|
742
|
-
puts Status.yourpost
|
743
|
-
@view.show_posted(resp)
|
744
|
-
rescue => e
|
745
|
-
Errors.global_error("action/post", args, e)
|
746
|
-
ensure
|
747
|
-
Databases.close_all
|
748
|
-
end
|
749
|
-
end
|
750
|
-
|
751
735
|
def auto(options)
|
752
736
|
begin
|
753
737
|
@view.clear_screen
|
@@ -769,29 +753,60 @@ module Ayadn
|
|
769
753
|
end
|
770
754
|
end
|
771
755
|
|
772
|
-
def
|
756
|
+
def post(args, options)
|
773
757
|
begin
|
758
|
+
writer = Post.new
|
759
|
+
@view.clear_screen
|
760
|
+
if options['embed']
|
761
|
+
puts Status.uploading(options['embed'])
|
762
|
+
resp = writer.send_embedded(args.join(" "), FileOps.make_paths(options['embed']))
|
763
|
+
else
|
764
|
+
puts Status.posting
|
765
|
+
resp = writer.post(args)
|
766
|
+
end
|
767
|
+
FileOps.save_post(resp) if Settings.options[:backup][:auto_save_sent_posts]
|
768
|
+
@view.clear_screen
|
769
|
+
puts Status.yourpost
|
770
|
+
@view.show_posted(resp)
|
771
|
+
rescue => e
|
772
|
+
Errors.global_error("action/post", [args, options], e)
|
773
|
+
ensure
|
774
|
+
Databases.close_all
|
775
|
+
end
|
776
|
+
end
|
777
|
+
|
778
|
+
def write(options)
|
779
|
+
begin
|
780
|
+
files = FileOps.make_paths(options['embed']) if options['embed']
|
774
781
|
writer = Post.new
|
775
782
|
puts Status.writing
|
776
783
|
puts Status.post
|
777
784
|
lines_array = writer.compose
|
778
785
|
writer.check_post_length(lines_array)
|
786
|
+
text = lines_array.join("\n")
|
787
|
+
if options['embed']
|
788
|
+
@view.clear_screen
|
789
|
+
puts Status.uploading(options['embed'])
|
790
|
+
resp = writer.send_embedded(text, files)
|
791
|
+
else
|
792
|
+
resp = writer.send_post(text)
|
793
|
+
end
|
779
794
|
@view.clear_screen
|
780
795
|
puts Status.posting
|
781
|
-
resp = writer.send_post(lines_array.join("\n"))
|
782
796
|
FileOps.save_post(resp) if Settings.options[:backup][:auto_save_sent_posts]
|
783
797
|
@view.clear_screen
|
784
798
|
puts Status.yourpost
|
785
799
|
@view.show_posted(resp)
|
786
800
|
rescue => e
|
787
|
-
Errors.global_error("action/write",
|
801
|
+
Errors.global_error("action/write", [text, options], e)
|
788
802
|
ensure
|
789
803
|
Databases.close_all
|
790
804
|
end
|
791
805
|
end
|
792
806
|
|
793
|
-
def pmess(username)
|
807
|
+
def pmess(username, options = {})
|
794
808
|
begin
|
809
|
+
files = FileOps.make_paths(options['embed']) if options['embed']
|
795
810
|
missing_username if username.empty?
|
796
811
|
temp = Workers.add_arobase_if_missing(username)
|
797
812
|
username = [temp]
|
@@ -800,15 +815,21 @@ module Ayadn
|
|
800
815
|
puts Status.message
|
801
816
|
lines_array = messenger.compose
|
802
817
|
messenger.check_message_length(lines_array)
|
818
|
+
text = lines_array.join("\n")
|
803
819
|
@view.clear_screen
|
804
|
-
|
805
|
-
|
820
|
+
if options['embed']
|
821
|
+
puts Status.uploading(options['embed'])
|
822
|
+
resp = messenger.send_pm_embedded(username, text, files)
|
823
|
+
else
|
824
|
+
puts Status.posting
|
825
|
+
resp = messenger.send_pm(username, text)
|
826
|
+
end
|
806
827
|
FileOps.save_message(resp) if Settings.options[:backup][:auto_save_sent_messages]
|
807
828
|
@view.clear_screen
|
808
829
|
puts Status.yourmessage
|
809
830
|
@view.show_posted(resp)
|
810
831
|
rescue => e
|
811
|
-
Errors.global_error("action/pmess", username, e)
|
832
|
+
Errors.global_error("action/pmess", [username, options], e)
|
812
833
|
ensure
|
813
834
|
Databases.close_all
|
814
835
|
end
|
@@ -836,8 +857,9 @@ module Ayadn
|
|
836
857
|
end
|
837
858
|
end
|
838
859
|
|
839
|
-
def reply(post_id)
|
860
|
+
def reply(post_id, options = {})
|
840
861
|
begin
|
862
|
+
files = FileOps.make_paths(options['embed']) if options['embed']
|
841
863
|
post_id = get_real_post_id(post_id)
|
842
864
|
puts Status.replying_to(post_id)
|
843
865
|
replied_to = @api.get_details(post_id)
|
@@ -856,36 +878,58 @@ module Ayadn
|
|
856
878
|
poster.check_post_length(lines_array)
|
857
879
|
@view.clear_screen
|
858
880
|
reply = poster.reply(lines_array.join("\n"), Workers.new.build_posts([replied_to['data']]))
|
859
|
-
|
860
|
-
|
881
|
+
if options['embed']
|
882
|
+
puts Status.uploading(options['embed'])
|
883
|
+
resp = poster.send_reply_embedded(reply, post_id, files)
|
884
|
+
else
|
885
|
+
puts Status.posting
|
886
|
+
resp = poster.send_reply(reply, post_id)
|
887
|
+
end
|
861
888
|
FileOps.save_post(resp) if Settings.options[:backup][:auto_save_sent_posts]
|
862
889
|
@view.clear_screen
|
863
890
|
puts Status.done
|
864
891
|
render_view(@api.get_convo(post_id, {}), {})
|
865
892
|
rescue => e
|
866
|
-
Errors.global_error("action/reply", post_id, e)
|
893
|
+
Errors.global_error("action/reply", [post_id, options], e)
|
867
894
|
ensure
|
868
895
|
Databases.close_all
|
869
896
|
end
|
870
897
|
end
|
871
898
|
|
872
|
-
def nowplaying
|
899
|
+
def nowplaying(options = {})
|
873
900
|
begin
|
874
901
|
Databases.close_all
|
875
902
|
abort(Status.error_only_osx) unless Settings.config[:platform] =~ /darwin/
|
876
|
-
itunes = get_track_infos
|
903
|
+
itunes = get_track_infos()
|
877
904
|
itunes.each {|el| abort(Status.empty_fields) if el.length == 0}
|
878
905
|
@view.clear_screen
|
879
|
-
|
906
|
+
unless options['no_url']
|
907
|
+
store = itunes_request(itunes)
|
908
|
+
end
|
909
|
+
text_to_post = "#nowplaying\n \nTitle: ‘#{itunes.track}’\nArtist: #{itunes.artist}\nfrom ‘#{itunes.album}’"
|
880
910
|
puts Status.writing
|
881
|
-
show_nowplaying(text_to_post)
|
911
|
+
show_nowplaying("\n#{text_to_post}", options, store)
|
912
|
+
text_to_post += "\n \n[> Listen](#{store['preview']})" unless options['no_url']
|
882
913
|
unless STDIN.getch == ("y" || "Y")
|
883
914
|
puts "\nCanceled.\n\n".color(:red)
|
884
915
|
exit
|
885
916
|
end
|
886
917
|
puts "\n"
|
887
918
|
puts Status.yourpost
|
888
|
-
|
919
|
+
if options['no_url'].nil?
|
920
|
+
visible, track, artwork = true, store['track'], store['artwork']
|
921
|
+
else
|
922
|
+
visible, track, artwork = false, false, false
|
923
|
+
end
|
924
|
+
dic = {
|
925
|
+
'text' => text_to_post,
|
926
|
+
'title' => track,
|
927
|
+
'artwork' => artwork,
|
928
|
+
'width' => 1200,
|
929
|
+
'height' => 1200,
|
930
|
+
'visible' => visible
|
931
|
+
}
|
932
|
+
@view.show_posted(Post.new.send_nowplaying(dic))
|
889
933
|
rescue => e
|
890
934
|
puts Status.wtf
|
891
935
|
Errors.global_error("action/nowplaying", itunes, e)
|
@@ -927,6 +971,24 @@ module Ayadn
|
|
927
971
|
|
928
972
|
private
|
929
973
|
|
974
|
+
def itunes_request itunes
|
975
|
+
regex_exotics = /[~:-;,?!\'&`^=+<>*%()\/"“”’°£$€.…]/
|
976
|
+
store_artist = itunes.artist.gsub(regex_exotics, ' ').split(' ').join('+')
|
977
|
+
store_track = itunes.track.gsub(regex_exotics, ' ').split(' ').join('+')
|
978
|
+
#store_album = itunes.album.gsub(regex_exotics, ' ').split(' ').join('+')
|
979
|
+
itunes_url = "https://itunes.apple.com/search?term=#{store_artist}&term=#{store_track}&media=music&entity=musicTrack"
|
980
|
+
results = JSON.load(CNX.download(itunes_url))['results']
|
981
|
+
candidate = results[0]
|
982
|
+
{
|
983
|
+
'artist' => candidate['artistName'],
|
984
|
+
'track' => candidate['trackName'],
|
985
|
+
'preview' => candidate['previewUrl'],
|
986
|
+
'artwork' => candidate['artworkUrl100'].gsub('100x100', '1200x1200'),
|
987
|
+
'request' => itunes_url,
|
988
|
+
'results' => results
|
989
|
+
}
|
990
|
+
end
|
991
|
+
|
930
992
|
def splitter_all words
|
931
993
|
[words].collect {|w| w.split(' ')}
|
932
994
|
end
|
@@ -1228,9 +1290,13 @@ module Ayadn
|
|
1228
1290
|
maker.new(artist.chomp!, album.chomp!, track.chomp!)
|
1229
1291
|
end
|
1230
1292
|
|
1231
|
-
def show_nowplaying(text)
|
1293
|
+
def show_nowplaying(text, options, store)
|
1232
1294
|
puts "\nYour post:\n".color(:cyan)
|
1233
|
-
|
1295
|
+
if options['no_url']
|
1296
|
+
puts text + "\n\n\n"
|
1297
|
+
else
|
1298
|
+
puts text + "\n\nAlbum artwork + 30 sec preview for track '#{store['track']}' by '#{store['artist']}' will be inserted in the post.\n\n\n".color(:green)
|
1299
|
+
end
|
1234
1300
|
puts "Do you confirm? (y/N) ".color(:yellow)
|
1235
1301
|
end
|
1236
1302
|
|
data/lib/ayadn/app.rb
CHANGED
@@ -347,22 +347,25 @@ module Ayadn
|
|
347
347
|
desc "post Your text", "Simple post to App.net (-P)"
|
348
348
|
map "-P" => :post
|
349
349
|
long_desc Descriptions.post
|
350
|
+
option :embed, aliases: "-e", type: :array, desc: "Embed one or several pictures in the new post"
|
350
351
|
def post(*args)
|
351
|
-
Action.new.post(args)
|
352
|
+
Action.new.post(args, options)
|
352
353
|
end
|
353
354
|
|
354
355
|
desc "write", "Multi-line post to App.net (-W)"
|
355
356
|
map "compose" => :write
|
356
357
|
map "-W" => :write
|
357
358
|
long_desc Descriptions.write
|
359
|
+
option :embed, aliases: "-e", type: :array, desc: "Embed one or several pictures in the new post"
|
358
360
|
def write
|
359
|
-
Action.new.write
|
361
|
+
Action.new.write(options)
|
360
362
|
end
|
361
363
|
|
362
364
|
desc "pm @USERNAME", "Send a private message to @username"
|
363
365
|
long_desc Descriptions.pmess
|
366
|
+
option :embed, aliases: "-e", type: :array, desc: "Embed one or several pictures in the new post"
|
364
367
|
def pm(*username)
|
365
|
-
Action.new.pmess(username)
|
368
|
+
Action.new.pmess(username, options)
|
366
369
|
end
|
367
370
|
|
368
371
|
desc "send CHANNEL", "Send a message to a CHANNEL (-C)"
|
@@ -375,9 +378,10 @@ module Ayadn
|
|
375
378
|
desc "reply POST", "Reply to post n°POST (-R)"
|
376
379
|
map "-R" => :reply
|
377
380
|
long_desc Descriptions.reply
|
381
|
+
option :embed, aliases: "-e", type: :array, desc: "Embed one or several pictures in the new post"
|
378
382
|
def reply(id)
|
379
383
|
ayadn = Action.new
|
380
|
-
ayadn.reply(id)
|
384
|
+
ayadn.reply(id, options)
|
381
385
|
end
|
382
386
|
|
383
387
|
desc "auto", "Auto post every line of input to App.net"
|
@@ -415,8 +419,9 @@ module Ayadn
|
|
415
419
|
desc "nowplaying", "Post the current iTunes track (-np)"
|
416
420
|
map "-np" => :nowplaying
|
417
421
|
long_desc Descriptions.nowplaying
|
422
|
+
option :no_url, type: :boolean, desc: "Don't append preview or album art at the end of the post"
|
418
423
|
def nowplaying
|
419
|
-
Action.new.nowplaying
|
424
|
+
Action.new.nowplaying(options)
|
420
425
|
end
|
421
426
|
|
422
427
|
desc "random", "Show random posts from App.net (-rnd)"
|
data/lib/ayadn/cnx.rb
CHANGED
data/lib/ayadn/fileops.rb
CHANGED
@@ -34,6 +34,36 @@ module Ayadn
|
|
34
34
|
Dir.exist?(Dir.home + "/ayadn/data")
|
35
35
|
end
|
36
36
|
|
37
|
+
def self.upload_files files
|
38
|
+
files.map do |file|
|
39
|
+
puts "\n#{file}\n\n"
|
40
|
+
JSON.load(self.upload(file, Settings.user_token))
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.upload(path, token)
|
45
|
+
begin
|
46
|
+
file = Regexp.escape(path).gsub!('\.', '.')
|
47
|
+
case File.extname(path).downcase
|
48
|
+
when ".png"
|
49
|
+
`curl -k -H 'Authorization: BEARER #{token}' https://api.app.net/files -F 'type=com.ayadn.files' -F "content=@#{file};type=image/png" -F 'public=true' -X POST`
|
50
|
+
when ".gif"
|
51
|
+
`curl -k -H 'Authorization: BEARER #{token}' https://api.app.net/files -F 'type=com.ayadn.files' -F "content=@#{file};type=image/gif" -F 'public=true' -X POST`
|
52
|
+
else #jpg or jpeg or JPG or JPEG, automatically recognized as such
|
53
|
+
`curl -k -H 'Authorization: BEARER #{token}' https://api.app.net/files -F 'type=com.ayadn.files' -F content=@#{file} -F 'public=true' -X POST`
|
54
|
+
end
|
55
|
+
rescue Errno::ENOENT
|
56
|
+
abort(Status.no_curl)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def self.make_paths(files_array)
|
61
|
+
files_array.map do |file|
|
62
|
+
abort(Status.bad_path) unless File.exist?(file)
|
63
|
+
File.absolute_path(file)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
37
67
|
private
|
38
68
|
|
39
69
|
def get_users(list)
|
data/lib/ayadn/post.rb
CHANGED
@@ -21,6 +21,102 @@ module Ayadn
|
|
21
21
|
# post
|
22
22
|
end
|
23
23
|
|
24
|
+
def send_embedded text, files
|
25
|
+
send_embedded_pictures({'text' => text, 'data' => FileOps.upload_files(files)})
|
26
|
+
end
|
27
|
+
|
28
|
+
def send_reply_embedded text, reply_to, files
|
29
|
+
send_reply_embedded_pictures({'text' => text, 'reply_to' => reply_to, 'data' => FileOps.upload_files(files)})
|
30
|
+
end
|
31
|
+
|
32
|
+
def send_pm_embedded username, text, files
|
33
|
+
send_pm_embedded_pictures({'text' => text, 'username' => username, 'data' => FileOps.upload_files(files)})
|
34
|
+
end
|
35
|
+
|
36
|
+
def send_embedded_pictures dic
|
37
|
+
send_content(Endpoints.new.posts_url, payload_embedded(dic))
|
38
|
+
end
|
39
|
+
|
40
|
+
def send_reply_embedded_pictures dic
|
41
|
+
send_content(Endpoints.new.posts_url, payload_reply_embedded(dic))
|
42
|
+
end
|
43
|
+
|
44
|
+
def send_pm_embedded_pictures dic
|
45
|
+
url = Endpoints.new.pm_url
|
46
|
+
url << "?include_annotations=1&access_token=#{Ayadn::Settings.user_token}"
|
47
|
+
send_content(url, payload_pm_embedded(dic))
|
48
|
+
end
|
49
|
+
|
50
|
+
def send_nowplaying dic
|
51
|
+
send_content(Endpoints.new.posts_url, payload_nowplaying(dic))
|
52
|
+
end
|
53
|
+
|
54
|
+
def payload_nowplaying dic
|
55
|
+
ann = annotations()
|
56
|
+
if dic['visible'] == true
|
57
|
+
ann << {
|
58
|
+
"type" => "net.app.core.oembed",
|
59
|
+
"value" => {
|
60
|
+
"version" => "1.0",
|
61
|
+
"type" => "photo",
|
62
|
+
"width" => dic['width'],
|
63
|
+
"height" => dic['height'],
|
64
|
+
"title" => dic['title'],
|
65
|
+
"url" => dic['artwork'],
|
66
|
+
"embeddable_url" => dic['artwork']
|
67
|
+
}
|
68
|
+
}
|
69
|
+
end
|
70
|
+
{
|
71
|
+
"text" => dic['text'],
|
72
|
+
"entities" => entities,
|
73
|
+
"annotations" => ann
|
74
|
+
}
|
75
|
+
end
|
76
|
+
|
77
|
+
def payload_embedded dic
|
78
|
+
{
|
79
|
+
"text" => dic['text'],
|
80
|
+
"entities" => entities,
|
81
|
+
"annotations" => annotations_embedded(dic)
|
82
|
+
}
|
83
|
+
end
|
84
|
+
|
85
|
+
def payload_reply_embedded dic
|
86
|
+
{
|
87
|
+
"text" => dic['text'],
|
88
|
+
"reply_to" => dic['reply_to'],
|
89
|
+
"entities" => entities,
|
90
|
+
"annotations" => annotations_embedded(dic)
|
91
|
+
}
|
92
|
+
end
|
93
|
+
|
94
|
+
def payload_pm_embedded dic
|
95
|
+
{
|
96
|
+
"text" => dic['text'],
|
97
|
+
"entities" => entities,
|
98
|
+
"destinations" => dic['username'],
|
99
|
+
"annotations" => annotations_embedded(dic)
|
100
|
+
}
|
101
|
+
end
|
102
|
+
|
103
|
+
def annotations_embedded dic
|
104
|
+
base = annotations()
|
105
|
+
dic['data'].each do |obj|
|
106
|
+
base << {
|
107
|
+
"type" => "net.app.core.oembed",
|
108
|
+
"value" => {
|
109
|
+
"+net.app.core.file" => {
|
110
|
+
"file_id" => obj['data']['id'],
|
111
|
+
"file_token" => obj['data']['file_token'],
|
112
|
+
"format" => "oembed"
|
113
|
+
}
|
114
|
+
}
|
115
|
+
}
|
116
|
+
end
|
117
|
+
return base
|
118
|
+
end
|
119
|
+
|
24
120
|
# def auto_classic
|
25
121
|
# loop do
|
26
122
|
# begin
|
@@ -82,14 +178,11 @@ module Ayadn
|
|
82
178
|
end
|
83
179
|
|
84
180
|
def send_pm(username, text)
|
85
|
-
|
86
|
-
url << "?include_annotations=1&access_token=#{Ayadn::Settings.user_token}"
|
87
|
-
send_content(url, payload_pm(username, text))
|
181
|
+
send_content(Endpoints.new.pm_url, payload_pm(username, text))
|
88
182
|
end
|
89
183
|
|
90
184
|
def send_message(channel_id, text)
|
91
|
-
|
92
|
-
send_content(url, payload_basic(text))
|
185
|
+
send_content(Endpoints.new.messages(channel_id, {}), payload_basic(text))
|
93
186
|
end
|
94
187
|
|
95
188
|
# def send_log(data)
|
@@ -98,13 +191,11 @@ module Ayadn
|
|
98
191
|
# end
|
99
192
|
|
100
193
|
def send_post(text)
|
101
|
-
|
102
|
-
send_content(url, payload_basic(text))
|
194
|
+
send_content(Endpoints.new.posts_url, payload_basic(text))
|
103
195
|
end
|
104
196
|
|
105
197
|
def send_reply(text, post_id)
|
106
|
-
|
107
|
-
send_content(url, payload_reply(text, post_id))
|
198
|
+
send_content(Endpoints.new.posts_url, payload_reply(text, post_id))
|
108
199
|
end
|
109
200
|
|
110
201
|
def send_content(url, payload)
|
@@ -185,6 +276,8 @@ module Ayadn
|
|
185
276
|
}
|
186
277
|
end
|
187
278
|
|
279
|
+
|
280
|
+
|
188
281
|
def payload_basic(text)
|
189
282
|
{
|
190
283
|
"text" => text,
|
data/lib/ayadn/status.rb
CHANGED
@@ -10,6 +10,10 @@ module Ayadn
|
|
10
10
|
def self.downloading
|
11
11
|
"Downloading from ADN...\n\n".inverse
|
12
12
|
end
|
13
|
+
def self.uploading files
|
14
|
+
files.length > 1 ? pl = "s" : pl = ""
|
15
|
+
"\nUploading file#{pl} to ADN...".color(:cyan)
|
16
|
+
end
|
13
17
|
def self.posting
|
14
18
|
"Posting to ADN...\n\n".inverse
|
15
19
|
end
|
@@ -277,5 +281,11 @@ module Ayadn
|
|
277
281
|
def self.no_text
|
278
282
|
"\n\nYou should provide some text.\n\n".color(:red)
|
279
283
|
end
|
284
|
+
def self.bad_path
|
285
|
+
"\n\nCouldn't upload this file (path seems wrong).\n\n".color(:red)
|
286
|
+
end
|
287
|
+
def self.no_curl
|
288
|
+
"\n\nAyadn needs 'curl' to upload files. Please install 'curl' (or check that it's properly declared in your $PATH).\n\n".color(:red)
|
289
|
+
end
|
280
290
|
end
|
281
291
|
end
|
data/lib/ayadn/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ayadn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Dejonckheere
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|