lib/ayadn/action.rb in ayadn-1.6.0 vs lib/ayadn/action.rb in ayadn-1.7.0
- old
+ new
@@ -17,58 +17,23 @@
Logs.create_logger
Databases.open_databases
at_exit { Databases.close_all }
end
- def unified(options)
- begin
- @stream.unified(options)
- rescue => e
- Errors.global_error({error: e, caller: caller, data: [options]})
+ def method_missing(meth, options)
+ case meth.to_s
+ when 'unified', 'checkins', 'global', 'trending', 'photos', 'conversations', 'interactions'
+ begin
+ @stream.send(meth.to_sym, options)
+ rescue => e
+ Errors.global_error({error: e, caller: caller, data: [meth, options]})
+ end
+ else
+ super
end
end
- def checkins(options)
- begin
- @stream.checkins(options)
- rescue => e
- Errors.global_error({error: e, caller: caller, data: [options]})
- end
- end
-
- def global(settings)
- begin
- @stream.global(settings)
- rescue => e
- Errors.global_error({error: e, caller: caller, data: [settings]})
- end
- end
-
- def trending(options)
- begin
- @stream.trending(options)
- rescue => e
- Errors.global_error({error: e, caller: caller, data: [options]})
- end
- end
-
- def photos(options)
- begin
- @stream.photos(options)
- rescue => e
- Errors.global_error({error: e, caller: caller, data: [options]})
- end
- end
-
- def conversations(options)
- begin
- @stream.conversations(options)
- rescue => e
- Errors.global_error({error: e, caller: caller, data: [options]})
- end
- end
-
def mentions(username, options)
begin
@stream.mentions(username, options)
rescue => e
Errors.global_error({error: e, caller: caller, data: [username, options]})
@@ -81,18 +46,10 @@
rescue => e
Errors.global_error({error: e, caller: caller, data: [username, options]})
end
end
- def interactions(options)
- begin
- @stream.interactions(options)
- rescue => e
- Errors.global_error({error: e, caller: caller, data: [options]})
- end
- end
-
def whatstarred(username, options)
begin
@stream.whatstarred(username, options)
rescue => e
Errors.global_error({error: e, caller: caller, data: [username, options]})
@@ -379,10 +336,11 @@
end
end
def postinfo(post_id, options)
begin
+ Settings.options[:force] = true if options[:force]
Check.bad_post_id(post_id)
@view.downloading(options)
if options[:raw]
details = @api.get_details(post_id, options)
@view.show_raw(details, options)
@@ -499,106 +457,71 @@
def post(args, options)
begin
writer = Post.new
@view.clear_screen
- if options['embed']
- embed = options['embed']
- text = args.join(" ")
- puts Status.uploading(embed)
- resp = writer.send_embedded(text, FileOps.make_paths(embed))
- else
- puts Status.posting
- resp = writer.post(args)
+ puts Status.posting
+ if options[:poster] # Returns the same options hash + poster embed
+ settings = options.dup
+ options = NowWatching.new.get_poster(settings[:poster], settings)
end
- FileOps.save_post(resp) if Settings.options[:backup][:auto_save_sent_posts]
- @view.clear_screen
- puts Status.yourpost
- @view.show_posted(resp)
+ resp = writer.post({options: options, text: args.join(" ")})
+ save_and_view(resp)
rescue => e
Errors.global_error({error: e, caller: caller, data: [args, options]})
end
end
def write(options)
begin
- files = FileOps.make_paths(options['embed']) if options['embed']
writer = Post.new
puts Status.writing
puts Status.post
lines_array = writer.compose
writer.check_post_length(lines_array)
text = lines_array.join("\n")
- if options['embed']
- @view.clear_screen
- puts Status.uploading(options['embed'])
- resp = writer.send_embedded(text, files)
- else
- resp = writer.send_post(text)
- end
@view.clear_screen
puts Status.posting
- FileOps.save_post(resp) if Settings.options[:backup][:auto_save_sent_posts]
- @view.clear_screen
- puts Status.yourpost
- @view.show_posted(resp)
+ if options[:poster]
+ settings = options.dup
+ options = NowWatching.new.get_poster(settings[:poster], settings)
+ end
+ resp = writer.post({options: options, text: text})
+ save_and_view(resp)
rescue => e
Errors.global_error({error: e, caller: caller, data: [text, options]})
end
end
def pmess(username, options = {})
begin
- files = FileOps.make_paths(options['embed']) if options['embed']
Check.no_username(username)
username = [@workers.add_arobase(username)]
- messenger = Post.new
+ writer = Post.new
puts Status.message_from(username)
puts Status.message
- lines_array = messenger.compose
- messenger.check_message_length(lines_array)
+ lines_array = writer.compose
+ writer.check_message_length(lines_array)
text = lines_array.join("\n")
@view.clear_screen
- if options['embed']
- puts Status.uploading(options['embed'])
- resp = messenger.send_pm_embedded(username, text, files)
- else
- puts Status.posting
- resp = messenger.send_pm(username, text)
+ puts Status.posting
+ if options[:poster]
+ settings = options.dup
+ options = NowWatching.new.get_poster(settings[:poster], settings)
end
+ resp = writer.pm({options: options, text: text, username: username})
FileOps.save_message(resp) if Settings.options[:backup][:auto_save_sent_messages]
@view.clear_screen
puts Status.yourmessage(username[0])
@view.show_posted(resp)
rescue => e
Errors.global_error({error: e, caller: caller, data: [username, options]})
end
end
- def send_to_channel(channel_id)
- begin
- channel_id = @workers.get_channel_id_from_alias(channel_id)
- messenger = Post.new
- puts Status.writing
- puts Status.post
- lines_array = messenger.compose
- messenger.check_message_length(lines_array)
- @view.clear_screen
- puts Status.posting
- resp = messenger.send_message(channel_id, lines_array.join("\n"))
- FileOps.save_message(resp) if Settings.options[:backup][:auto_save_sent_messages]
- @view.clear_screen
- puts Status.yourpost
- @view.show_posted(resp)
- rescue => e
- Errors.global_error({error: e, caller: caller, data: [channel_id]})
- end
- end
-
def reply(post_id, options = {})
begin
- files = FileOps.make_paths(options['embed']) if options['embed']
post_id = @workers.get_real_post_id(post_id)
puts Status.replying_to(post_id)
replied_to = @api.get_details(post_id)
Check.no_post(replied_to, post_id)
post_id = @workers.get_original_id(post_id, replied_to)
@@ -606,40 +529,53 @@
if post_id == replied_to['data']['repost_of']['id']
replied_to = @api.get_details(post_id)
Check.no_post(replied_to, post_id)
end
end
- poster = Post.new
+ # ----
+ writer = Post.new
puts Status.writing
puts Status.reply
- lines_array = poster.compose
- poster.check_post_length(lines_array)
+ lines_array = writer.compose
+ writer.check_post_length(lines_array)
@view.clear_screen
- reply = poster.reply(lines_array.join("\n"), @workers.build_posts([replied_to['data']]))
- if options['embed']
- puts Status.uploading(options['embed'])
- resp = poster.send_reply_embedded(reply, post_id, files)
- else
- puts Status.posting
- resp = poster.send_reply(reply, post_id)
+ text = lines_array.join("\n")
+ replied_to = @workers.build_posts([replied_to['data']])
+ if options[:poster]
+ settings = options.dup
+ options = NowWatching.new.get_poster(settings[:poster], settings)
end
- FileOps.save_post(resp) if Settings.options[:backup][:auto_save_sent_posts]
- @view.clear_screen
- puts Status.done
-
+ resp = writer.reply({options: options, text: text, id: post_id, reply_to: replied_to})
+ # ----
options = options.dup
unless resp['data']['reply_to'].nil?
options[:reply_to] = resp['data']['reply_to'].to_i
end
options[:post_id] = resp['data']['id'].to_i
-
@view.render(@api.get_convo(post_id), options)
rescue => e
Errors.global_error({error: e, caller: caller, data: [post_id, options]})
end
end
+ def send_to_channel(channel_id)
+ begin
+ channel_id = @workers.get_channel_id_from_alias(channel_id)
+ writer = Post.new
+ puts Status.writing
+ puts Status.post
+ lines_array = writer.compose
+ writer.check_message_length(lines_array)
+ @view.clear_screen
+ puts Status.posting
+ resp = writer.message({id: channel_id, text: lines_array.join("\n")})
+ save_and_view(resp)
+ rescue => e
+ Errors.global_error({error: e, caller: caller, data: [channel_id]})
+ end
+ end
+
def nowplaying(options = {})
np = NowPlaying.new(@api, @view, @workers)
options['lastfm'] ? np.lastfm(options) : np.itunes(options)
end
@@ -689,9 +625,18 @@
puts "Docs:\t\t".color(:cyan) + "https://github.com/ericdke/na/tree/master/doc".color(Settings.options[:colors][:link])
puts "\n"
rescue => e
Errors.global_error({error: e, caller: caller, data: []})
end
+ end
+
+ private
+
+ def save_and_view(resp)
+ FileOps.save_post(resp) if Settings.options[:backup][:auto_save_sent_posts]
+ @view.clear_screen
+ puts Status.yourpost
+ @view.show_posted(resp)
end
end
end