Description: require twitter-text 1.14.6
Author: HIGUCHI Daisuke (VDR dai) <dai@debian.org>
Last-Update: 2018-06-12

Index: mikutter/Gemfile
===================================================================
--- mikutter.orig/Gemfile
+++ mikutter/Gemfile
@@ -20,7 +20,7 @@ group :default do
   gem 'delayer', '~> 0.0'
   gem 'pluggaloid', '>= 1.1.1', '< 2.0'
   gem 'delayer-deferred', '>= 2.0', '< 3.0'
-  gem 'twitter-text', '>= 2.1.0'
+  gem 'twitter-text', '>= 1.14.6', '< 2.1'
 end
 
 group :test do
Index: mikutter/core/plugin/twitter/twitter.rb
===================================================================
--- mikutter.orig/core/plugin/twitter/twitter.rb
+++ mikutter/core/plugin/twitter/twitter.rb
@@ -239,9 +239,16 @@ Plugin.create(:twitter) do
     }
   end
 
-  defspell(:remain_charcount, :twitter) do |_twitter, body:|
-    tweet = Twitter::TwitterText::Validation.parse_tweet(trim_hidden_regions(body))
-    280 - tweet[:weighted_length]
+  defspell(:remain_charcount, :twitter) do |twitter, body:|
+    body = trim_hidden_regions(body)
+    Twitter::TwitterText::Extractor.extract_urls(body).map{|url|
+      posted_url_length = Plugin.filtering(:tco_url_length, url, 0).last
+      if url.length < posted_url_length
+        -(posted_url_length - url.length)
+      else
+        url.length - posted_url_length
+      end
+    }.inject(140 - body.size, &:+)
   end
 
   def trim_hidden_regions(text)
