lib/ayadn/blacklist.rb in ayadn-1.2.10 vs lib/ayadn/blacklist.rb in ayadn-1.3.0

- old
+ new

@@ -1,17 +1,19 @@ # encoding: utf-8 module Ayadn class Blacklist < Thor - desc "add TYPE TARGET", "Adds a mention, hashtag or client to your blacklist" + desc "add TYPE TARGET", "Adds a mention, hashtag, client or username to your blacklist" + map "create" => :add long_desc Descriptions.blacklist_add def add(*args) Action.quit(Status.type_and_target_missing) if args.length < 2 BlacklistWorkers.new.add(args) puts Status.done end - desc "remove TYPE TARGET", "Removes a mention, hashtag or client from your blacklist" + desc "remove TYPE TARGET", "Removes a mention, hashtag, client or username from your blacklist" + map "delete" => :remove long_desc Descriptions.blacklist_remove def remove(*args) Action.quit(Status.type_and_target_missing) if args.length < 2 BlacklistWorkers.new.remove(args) puts Status.done @@ -35,10 +37,16 @@ def convert BlacklistWorkers.new.convert puts Status.done end + desc "clear", "Clear your blacklist database" + def clear + BlacklistWorkers.new.clear + puts Status.done + end + end class BlacklistWorkers def initialize Settings.load_config @@ -66,14 +74,32 @@ Databases.convert_blacklist ensure Databases.close_all end end + def clear + begin + puts "\n\nAre you sure you want to erase all the content of your blacklist database?\n\n[y/N]\n".color(:red) + input = STDIN.getch + if input == 'y' || input == 'Y' + Databases.clear_blacklist + Logs.rec.info "Cleared the blacklist database." + else + abort Status.canceled + end + ensure + Databases.close_all + end + end def add(args) begin type = args.shift case type + when 'user', 'username', 'account' + target = Workers.add_arobases_to_usernames args + Databases.add_user_to_blacklist(target) + Logs.rec.info "Added '#{target}' to blacklist of users." when 'mention', 'mentions' target = Workers.add_arobases_to_usernames args Databases.add_mention_to_blacklist(target) Logs.rec.info "Added '#{target}' to blacklist of mentions." when 'client', 'source' @@ -91,9 +117,14 @@ end def remove(args) begin type = args.shift case type + when 'user', 'username', 'account' + temp = Workers.add_arobases_to_usernames args + target = temp.map {|u| "-#{u}"} + Databases.remove_from_blacklist(target) + Logs.rec.info "Removed '#{target}' from blacklist of users." when 'mention', 'mentions' target = Workers.add_arobases_to_usernames args Databases.remove_from_blacklist(target) Logs.rec.info "Removed '#{target}' from blacklist of mentions." when 'client', 'source', 'hashtag', 'tag'