ayadn 1.3.2 → 1.4.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 +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
|