Class: Ayadn::Post
Instance Method Summary collapse
- #auto_readline ⇒ Object
- #bad_text_size(post, size, max_size) ⇒ Object
-
#compose ⇒ Object
—–.
- #entities ⇒ Object
- #error_text_empty ⇒ Object
-
#initialize(status = Status.new) ⇒ Post
constructor
A new instance of Post.
- #keep_text_from_markdown_links(str) ⇒ Object
- #markdown_extract(str) ⇒ Object
- #message(dic) ⇒ Object
- #message_size_error(message) ⇒ Object
-
#message_size_ok?(message) ⇒ Boolean
works on a string, returns boolean.
-
#payload_basic(dic) ⇒ Object
—–.
- #payload_pm(dic) ⇒ Object
- #payload_reply(dic) ⇒ Object
- #pm(dic) ⇒ Object
- #post(dic) ⇒ Object
- #post_size_error(post) ⇒ Object
-
#post_size_ok?(post) ⇒ Boolean
works on a string, returns boolean.
- #readline ⇒ Object
- #reply(dic) ⇒ Object
-
#send_content(url, payload) ⇒ Object
—–.
Constructor Details
Instance Method Details
#auto_readline ⇒ Object
88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/ayadn/post.rb', line 88 def auto_readline loop do begin while buffer = Readline.readline(">> ".color(:red)) resp = post({text: buffer}) FileOps.save_post(resp) if Settings..backup.posts @status.done end rescue Interrupt @status.canceled exit end end end |
#bad_text_size(post, size, max_size) ⇒ Object
141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/ayadn/post.rb', line 141 def bad_text_size(post, size, max_size) if size < 1 error_text_empty() elsif size > max_size Errors.warn "Canceled: too long (#{size - max_size}chars)" @status.info("info", "your text:", "cyan") puts post @status.too_long(size, max_size) exit end end |
#entities ⇒ Object
68 69 70 71 72 73 |
# File 'lib/ayadn/post.rb', line 68 def entities { "parse_markdown_links" => true, "parse_links" => true } end |
#error_text_empty ⇒ Object
162 163 164 165 166 |
# File 'lib/ayadn/post.rb', line 162 def error_text_empty @status.no_text Errors.warn "-No text-" exit end |
#keep_text_from_markdown_links(str) ⇒ Object
153 154 155 |
# File 'lib/ayadn/post.rb', line 153 def keep_text_from_markdown_links(str) str.gsub(@markdown_link_regex, '\1') end |
#markdown_extract(str) ⇒ Object
157 158 159 160 |
# File 'lib/ayadn/post.rb', line 157 def markdown_extract(str) result = str.gsub(@markdown_link_regex, '\1|||\2') result.split('|||') #=> [text, link] end |
#message(dic) ⇒ Object
36 37 38 |
# File 'lib/ayadn/post.rb', line 36 def (dic) send_content(Endpoints.new.(dic[:id]), payload_basic(dic)) end |
#message_size_error(message) ⇒ Object
135 136 137 138 139 |
# File 'lib/ayadn/post.rb', line 135 def () text = keep_text_from_markdown_links() size, max_size = text.length, Settings.config. bad_text_size(, size, max_size) end |
#message_size_ok?(message) ⇒ Boolean
works on a string, returns boolean
123 124 125 126 127 |
# File 'lib/ayadn/post.rb', line 123 def () # works on a string, returns boolean text = keep_text_from_markdown_links() size, max_size = text.length, Settings.config. (size >= 1 && size <= max_size) end |
#payload_basic(dic) ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/ayadn/post.rb', line 42 def payload_basic(dic) { "text" => dic[:text], "entities" => entities(), "annotations" => Annotations.new(dic).content } end |
#payload_pm(dic) ⇒ Object
50 51 52 53 54 55 56 57 |
# File 'lib/ayadn/post.rb', line 50 def payload_pm(dic) { "text" => dic[:text], "entities" => entities(), "destinations" => dic[:username], "annotations" => Annotations.new(dic).content } end |
#payload_reply(dic) ⇒ Object
59 60 61 62 63 64 65 66 |
# File 'lib/ayadn/post.rb', line 59 def payload_reply(dic) { "text" => dic[:text], "reply_to" => dic[:reply_to], "entities" => entities(), "annotations" => Annotations.new(dic).content } end |
#pm(dic) ⇒ Object
32 33 34 |
# File 'lib/ayadn/post.rb', line 32 def pm(dic) send_content(Endpoints.new.pm_url, payload_pm(dic)) end |
#post(dic) ⇒ Object
12 13 14 |
# File 'lib/ayadn/post.rb', line 12 def post(dic) send_content(Endpoints.new.posts_url, payload_basic(dic)) end |
#post_size_error(post) ⇒ Object
129 130 131 132 133 |
# File 'lib/ayadn/post.rb', line 129 def post_size_error(post) text = keep_text_from_markdown_links(post) size, max_size = text.length, Settings.config.post_max_length bad_text_size(post, size, max_size) end |
#post_size_ok?(post) ⇒ Boolean
works on a string, returns boolean
117 118 119 120 121 |
# File 'lib/ayadn/post.rb', line 117 def post_size_ok?(post) # works on a string, returns boolean text = keep_text_from_markdown_links(post) size, max_size = text.length, Settings.config.post_max_length (size >= 1 && size <= max_size) end |
#readline ⇒ Object
103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/ayadn/post.rb', line 103 def readline @status.readline post = [] begin while buffer = Readline.readline("> ") post << buffer end rescue Interrupt @status.canceled exit end post end |
#reply(dic) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/ayadn/post.rb', line 16 def reply(dic) replied_to = dic[:reply_to] reply = replied_to.handle.dup reply << " #{dic[:text]}" replied_to.mentions.uniq! replied_to.mentions.each do |m| next if m == replied_to.username next if m == Settings.config.identity.username reply << " @#{m}" end post_size_error(reply) if !post_size_ok?(reply) dic[:text] = reply dic[:reply_to] = dic[:id] send_content(Endpoints.new.posts_url, payload_reply(dic)) end |