Giter VIP home page Giter VIP logo

earthquake's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

earthquake's Issues

Uncaught Exception when server is down

Seems like twitter was having some server problems, and earthquake crashed when I tried to post an update.
I'm on revision 13b8f29.

⚡ [ERROR] 743: unexpected token at '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="Content-Language" content="en-us" />
    <title>Twitter / Error</title>
    <link href="//si0.twimg.com/sticky/error_pages/favicon.ico" rel="shortcut icon" type="image/x-icon" />

    <style type="text/css">
      /* Page
      ----------------------------------------------- */
      * { border: 0; padding: 0; margin: 0; }
      body{ margin: 10px 0; background:#C0DEED url(//si0.twimg.com/sticky/error_pages/bg-clouds.png) repeat-x; color:#333; font: 12px Lucida Grande, Arial, sans-serif; text-align:center }
      #container { width: 755px; margin: 0 auto; padding: 0px 0; text-align: left; position: relative; }
      #content { width: 100%; margin-top: 8px; float: left; padding-bottom: 15px; background: transparent url(//si0.twimg.com/sticky/error_pages/arr2.gif) no-repeat scroll 25px 0px;}
      .subpage #content .wrapper { background-color: #fff;  -moz-border-radius: 5px; -webkit-border-radius: 5px; padding: 10px 0;}
      .subpage #content h2 { margin: 5px 20px; font: bold 26px Helvetica Neue, Helvetica, Arial, sans-serif; }
      .subpage #content p { margin: 0 20px 10px 20px; color: #666; font-size: 13px;}
      .subpage #content ul { padding-left: 30px; }
      .subpage #content ol, #side ol { padding-left: 30px; }
      a{text-decoration:none;color: #2277BB;}
      a:hover { text-decoration: underline;}
      #content div.desc { margin: 11px 0px 10px 0px; }
      a img{border:0;}
      ul{list-style:square;padding-left:20px;}
      div.error { width: 100%; text-align: right; margin: 10px 0;}

      /* Navigation
      ----------------------------------------------- */
      #navigation { background-color: #fff; position: absolute; top: 8px; right: 0; padding: 6px 6px; font-size: 13px; text-align: center; }
      #navigation ul { margin: 0; padding: 0px; width: auto; height: 100%; _width: 60px; }
      #navigation li { display:inline; padding: 0 5px; }
      #navigation li:before { content: ' '; padding-right: 0; }
      #navigation li.first:before { content: ''; padding-right: 0; }
      #navigation, #footer { -moz-border-radius: 5px;-webkit-border-radius: 5px;}

      /* Footer
      ----------------------------------------------- */
      #footer { clear: left; width: 555px; text-align: left; padding: 0px 0; font-size: 11px; color: #778899;}
      #footer ul { clear: both; display: block;}
      #footer li { display: block; float: left; margin: 0 16px 0 0;}
      #footer li.first:before { content: ''; padding-right: 0; }
      #languages li { margin-bottom: 25px; font-size: 12px; width: 14%; text-align: center; }

    </style>
  </head>
  <body>
    <div id="container" class="subpage">
      <div id="navigation">
        <ul>
          <li class="first"><a href="//twitter.com">Home &#8250;</a></li>
        </ul>
      </div>
      <h1 id="header"><a href="//twitter.com"><img src="//si0.twimg.com/sticky/error_pages/twitter_logo_header.png" width="155" height="36" alt="Twitter.com" /></a></h1>
      <div id="content">
        <div class="desc"></div>
        <div class="wrapper">
          <h2>Something is technically wrong.</h2>
          <p>Thanks for noticing—we're going to fix it up and have things back to normal soon.</p>
        </div>
      </div>
      <div id="footer" style="width:100%">
        <ul id="languages">
          <li class="first"><a onclick="displayLanguage('en');return false;" href="#">English</a></li>
          <li><a onclick="displayLanguage('de');return false;" href="#">Deutsch</a></li>
          <li><a onclick="displayLanguage('es');return false;" href="#">Español</a></li>
          <li><a onclick="displayLanguage('fr');return false;" href="#">Français</a></li>
          <li><a onclick="displayLanguage('it');return false;" href="#">Italiano</a></li>
          <li><a onclick="displayLanguage('ja');return false;" href="#">日本語</a></li>
          <li><a onclick="displayLanguage('ko');return false;" href="#">한국어</a></li>
          <li><a onclick="displayLanguage('pt');return false;" href="#">Português</a></li>
        </ul>

        <ul>
          <li class="first">&copy; 2011 Twitter</li>
          <li><a href="/about">About Us</a></li>
          <li><a href="/about/contact">Contact</a></li>
          <li><a href="http://blog.twitter.com/">Blog</a></li>
          <li><a href="http://status.twitter.com/">Status</a></li>
          <li><a href="http://dev.twitter.com/">API</a></li>
          <li><a href="/help">Help</a></li>
          <li><a href="/jobs">Jobs</a></li>
          <li><a href="/tos">TOS</a></li>
          <li><a href="/privacy">Privacy</a></li>
        </ul>
      </div>
      <div class="error"><img src="//si0.twimg.com/sticky/error_pages/please_fix.png" width="311" height="212" alt=""/></div>
    </div>
    <!-- BEGIN google analytics -->
    <script type="text/javascript">
      var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
      document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
    </script>
    <script type="text/javascript">
      var pageTracker = _gat._getTracker("UA-30775-6");
      pageTracker._setDomainName("twitter.com");
      pageTracker._trackPageview('500 Error');
    </script>
    <!-- END google analytics -->
    <script type="text/javascript">
    //<![CDATA[
    var twttr = {};

    twttr.translations = {
      en: {
        home: 'Home &#8250;',
        title: 'Something is technically wrong.',
        description: 'Thanks for noticing—we\'re going to fix it up and have things back to normal soon.'
      },
      de: {
        home: 'Startseite &#8250;',
        title: 'Es ist ein technischer Fehler aufgetreten.',
        description: 'Vielen Dank für deine Aufmerksamkeit - wir lösen das Problem und alles wird bald wieder seine Richtigkeit haben.'
      },
      es: {
        home: 'Página de Inicio &#8250;',
        title: 'Algo salió mal, técnicamente.',
        description: 'Gracias por darte cuenta - vamos a solucionarlo y todo volverá a la normalidad pronto.'
      },
      fr: {
        home: 'Accueil &#8250;',
        title: 'Un problème technique est survenu.',
        description: 'Merci d\'avoir remarqué—nous allons réparer tout ça et remettre les choses en ordre sous peu.'
      },
      it: {
        home: 'Pagina Iniziale &#8250;',
        title: 'Tecnicamente qualcosa è andato storto.',
        description: 'Grazie per averlo notato: stiamo lavorando per aggiustare e rimettere presto tutto a posto.'
      },
      ja: {
        home: 'ホーム &#8250;',
        title: '技術的な不具合が発生しています。',
        description: 'ご迷惑をおかけして申し訳ありません。早急に問題を解決し、復旧いたします。'
      },
      ko: {
        home: '홈 &#8250;',
        title: '현재 트위터에 문제가 있습니다',
        description: '이용에 불편을 드려 죄송합니다. 가능한 빨리 복원하도록 하겠습니다.'
      },
      pt: {
        home: 'Página Inicial &#8250;',
        title: 'Algo está tecnicamente errado.',
        description: 'Obrigado por reparar—iremos corrigir este problema e ter as coisas de volta ao normal em breve.'
      }
    };

    function displayLanguage(lang) {
      if (lang && twttr.translations[lang]) {
        document.getElementsByTagName('h2')[0].innerHTML = twttr.translations[lang].title;
        document.getElementsByTagName('p')[0].innerHTML = twttr.translations[lang].description;
        document.getElementById('navigation').getElementsByTagName('a')[0].innerHTML = twttr.translations[lang].home;
      }
    }

    var lang = window.navigator.language ? window.navigator.language.replace(/^(..).*$/, '$1') : undefined;
    displayLanguage(lang);
    //]]>
    </script>
  </body>
</html>
'
/opt/local/lib/ruby1.9/1.9.1/json/common.rb:148:in `parse'
/opt/local/lib/ruby1.9/1.9.1/json/common.rb:148:in `parse'
/opt/local/lib/ruby1.9/gems/1.9.1/gems/twitter_oauth-0.4.3/lib/twitter_oauth/client.rb:80:in `post'
/opt/local/lib/ruby1.9/gems/1.9.1/gems/twitter_oauth-0.4.3/lib/twitter_oauth/status.rb:11:in `update'
/Users/seppo/Projects/free-software/earthquake/lib/earthquake/commands.rb:89:in `block (3 levels) in <top (required)>'
/Users/seppo/Projects/free-software/earthquake/lib/earthquake/input.rb:99:in `call'
/Users/seppo/Projects/free-software/earthquake/lib/earthquake/input.rb:99:in `handle_api_error'
/Users/seppo/Projects/free-software/earthquake/lib/earthquake/input.rb:95:in `block in async_e'
/Users/seppo/Projects/free-software/earthquake/lib/earthquake/core.rb:212:in `call'
/Users/seppo/Projects/free-software/earthquake/lib/earthquake/core.rb:212:in `block in async'

Feature Request: Flag user as spam

Not sure if the Twitter API provides a way to do this, but I'm pretty sure it does.

Example theoretical usage:

:spam [user or $tweetID]

Unable to launch. No Browser application found.

When first running on an Ubuntu server (without X installed), it throws a RuntimeError when attempting to open the system browser and does not prompt for the PIN (even on subsequent runs).

Output:

$ earthquake
1) open: http://api.twitter.com/oauth/authorize?oauth_token=QiYjJJOrCcY3c1RXFG0TZInET5jS2e0oyYBFi2Ns
Unable to launch. No Browser application found.
/home/oshuma/.rvm/gems/ruby-1.9.2-p136@earthquake/gems/launchy-0.4.0/lib/launchy/browser.rb:41:in `initialize': Unable to find browser to launch for os family 'nix'. (RuntimeError)
        from /home/oshuma/.rvm/gems/ruby-1.9.2-p136@earthquake/gems/launchy-0.4.0/lib/launchy/browser.rb:21:in `new'
        from /home/oshuma/.rvm/gems/ruby-1.9.2-p136@earthquake/gems/launchy-0.4.0/lib/launchy/browser.rb:21:in `run'
        from /home/oshuma/.rvm/gems/ruby-1.9.2-p136@earthquake/gems/earthquake-0.5.8/lib/earthquake/get_access_token.rb:12:in `get_access_token'
        from /home/oshuma/.rvm/gems/ruby-1.9.2-p136@earthquake/gems/earthquake-0.5.8/lib/earthquake/core.rb:69:in `load_config'
        from /home/oshuma/.rvm/gems/ruby-1.9.2-p136@earthquake/gems/earthquake-0.5.8/lib/earthquake/core.rb:35:in `_init'
        from /home/oshuma/.rvm/gems/ruby-1.9.2-p136@earthquake/gems/earthquake-0.5.8/lib/earthquake/core.rb:84:in `start'
        from /home/oshuma/.rvm/gems/ruby-1.9.2-p136@earthquake/gems/earthquake-0.5.8/bin/earthquake:13:in `'
        from /home/oshuma/.rvm/gems/ruby-1.9.2-p136@earthquake/bin/earthquake:19:in `load'
        from /home/oshuma/.rvm/gems/ruby-1.9.2-p136@earthquake/bin/earthquake:19:in `'

I'll try to work up a fix for this shortly.

cannot start with an optional directory

I'm using two accounts on earthquake.gem. The main account works good, but cannot start with an optional directory for another account.

$ ruby bin/earthquake ~/.earthquake-another
[main account]⚡ 

It seems that command line options are not reflected properly.

installing on mac os x error

after $ gem install earthquake

ERROR: While executing gem ... (NoMethodError)
undefined method `call' for nil:NilClass

Allow :user $id

Or more generically, every command that expects a user as a parameter should be able to receive an identifier of a tweet and use that tweets user.

E.g.:

[$aa] seppo0010: earthquake rules
⚡ :user $aa
{
                   "id" => 8117182,
          "screen_name" => "seppo0010",
                 "name" => "seppo0010",
    "profile_image_url" => "http://a1.twimg.com/profile_images/1487896175/11_-_1_normal.jpg",
          "description" => "Programmer. Studying to be an Actuary. Linux fan.",
                  "url" => "http://catdevmind.blogspot.com/",
             "location" => "",
            "time_zone" => "Buenos Aires",
                 "lang" => "en",
            "protected" => false
}

Token Request 401 Unauthorized

First launch I get this:

/usr/local/rvm/gems/ruby-1.9.2-p290/gems/oauth-0.4.5/lib/oauth/consumer.rb:219:in `token_request': 401 Unauthorized (OAuth::Unauthorized)
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/oauth-0.4.5/lib/oauth/consumer.rb:139:in `get_request_token'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/earthquake-0.8.3/lib/earthquake/get_access_token.rb:10:in `get_access_token'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/earthquake-0.8.3/lib/earthquake/core.rb:75:in `load_config'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/earthquake-0.8.3/lib/earthquake/core.rb:35:in `_init'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/earthquake-0.8.3/lib/earthquake/core.rb:90:in `__init'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/earthquake-0.8.3/lib/earthquake/core.rb:100:in `start'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/earthquake-0.8.3/bin/earthquake:48:in `<top (required)>'
from /usr/local/rvm/gems/ruby-1.9.2-p290/bin/earthquake:19:in `load'
from /usr/local/rvm/gems/ruby-1.9.2-p290/bin/earthquake:19:in `<main>'

Any idea what's up with it?

Config is reloaded after each command

After every command the config is reloaded. If a command changes a configuration that's also set by the default config, the changes by the command are lost.

private method `require' called for Bundler:Module

$ earthquake
/home/logankoester/.rvm/gems/ruby-1.9.2-p136/gems/earthquake-0.1.1/lib/earthquake.rb:5:in <top (required)>': private methodrequire' called for Bundler:Module (NoMethodError)
from internal:lib/rubygems/custom_require:29:in require' from <internal:lib/rubygems/custom_require>:29:inrequire'
from /home/logankoester/.rvm/gems/ruby-1.9.2-p136/gems/earthquake-0.1.1/bin/earthquake:3:in <top (required)>' from /home/logankoester/.rvm/gems/ruby-1.9.2-p136/bin/earthquake:19:inload'
from /home/logankoester/.rvm/gems/ruby-1.9.2-p136/bin/earthquake:19:in `

'

Feature Request: "help <command name>"

Provide contextual help about a particular command, simply the information of what parameter is expected (type, where to find it, etc...) even if it seems obvious ;)

Invalid gemspec

Love, love, love earthquake. But can't run it anymore, because I get:

Invalid gemspec in [/usr/lib64/ruby/gems/1.9.1/specifications/earthquake-0.8.1.gemspec]: Illformed requirement ["#Syck::DefaultKey:0x0000000251a278 0.4.3"]

when I try to install it.

In fact, that error appears even when earthquake is not actually installed (when running anything having to do with gems, irb etc.)

Any thoughts on what might be causing this? Is there a way to clear out the gemspec and start over?

unexpected token error on some retweets

I'll look into this later, but I imagine the fact that it's an XML document and there are errors coming from the JSON parser might have something to do with it. ;^)

TrevorBramble⚡ :retweet $ao
retweet 'RT @defunkt: best diff ever: https://github.com/sstephenson/everyjs.com/commit/a993a3bcbc' [Yn]
TrevorBramble⚡ [ERROR] 706: unexpected token at '

<title>Twitter / Over capacity</title>
<style type="text/css">
  /* Page
  ----------------------------------------------- */
  * { border: 0; padding: 0; margin: 0; }
  body{ margin: 10px 0; background:#C0DEED url(//si0.twimg.com/sticky/error_pages/bg-clouds.png) repeat-x; color:#333; font: 12px Lucida Grande, Arial, sans-serif; text-align:center }
  #container { width: 755px; margin: 0 auto; padding: 0px 0; text-align: left; position: relative; }
  #content { width: 100%; margin-top: 0px; float: left; margin-top: 8px; padding-bottom: 15px; background: transparent url(//si0.twimg.com/sticky/error_pages/arr2.gif) no-repeat scroll 25px 0px;}
  .subpage #content .wrapper { background-color: #fff;  padding: 10px 0px 10px 0px; -moz-border-radius: 5px 5px 0 0; -webkit-border-radius: 5px; -webkit-border-bottom-left-radius: 0px; -webkit-border-bottom-right-radius: 0px;}
  .subpage #content h2 { margin: 8px 20px 5px 20px; font: bold 26px Helvetica Neue, Helvetica, Arial, sans-serif; }
  .subpage #content p { margin: 0 20px 10px 20px; color: #666; font-size: 13px;}
  .subpage #content ul { padding-left: 30px; }
  .subpage #content ol, #side ol { padding-left: 30px; }
  a{text-decoration:none;color: #0084b4;}
  #content div.desc { margin: 11px 0px 10px 0px; }
  a img{border:0;}
  a:hover { text-decoration: underline;}
  ul{list-style:square;padding-left:20px;}
  div.error { width: 100%; text-align: center; margin: 0px 0;}

  /* Navigation
  ----------------------------------------------- */
  #navigation { background-color: #fff; position: absolute; top: 8px; right: 0; padding: 6px 6px; font-size: 13px; text-align: center; }
  #navigation ul { margin: 0; padding: 0px; width: auto; height: 100%; _width: 60px;}
  #navigation li { display:inline; padding: 0 5px; }
  #navigation li:before { content: ' '; padding-right: 0; }
  #navigation li.first:before { content: ''; padding-right: 0; }
  #navigation, #footer { -moz-border-radius: 5px;-webkit-border-radius: 5px;}

  /* Footer
  ----------------------------------------------- */
  #footer { clear: left; width: 555px; text-align: left; padding: 0px 0; font-size: 11px; color: #778899;}
  #footer ul { clear: both; display: block;}
  #footer li { display: block; float: left; margin: 0 16px 0 0;}
  #footer li.first:before { content: ''; padding-right: 0; }
  #languages li { margin-bottom: 25px; font-size: 12px; width: 14%; text-align: center; }

</style>

Twitter.com

Twitter is over capacity.

Please wait a moment and try again. For more information, check out Twitter Status »

bundler install error in v0.8.5

using ruby 1.9.3-p0, bundler 1.1rc.7
when bundle install, get following message.

$ bundle install

Fetching gem metadata from http://rubygems.org/.
Unfortunately, the gem earthquake (0.8.1) has an invalid gemspec. As a result, Bundler cannot install this Gemfile. Please ask the gem author to yank the bad version to fix this issue. For more information, see http://bit.ly/syck-defaultkey.

Exception backtracing thread to protected tweet

When calling :thread on a tweet that leads to a protected tweet an exception is raised and no tweet is displayed.

Ex.: user A has protected tweets and the current user is not authorized to view his tweets.

[$aa] B: @A yeah, me too (reply to $ab) ...
⚡ :thread $aa
.
⚡ 

I was able to see the exception showing an invalid json with some html page in the growl notification, but not enough to get something useful.

Earthquake doesn't refresh automatically

I'm using ruby-1.9.2-p290 and latest earthquake.gem

When I start it, it logs in successfully - I can get recent tweets with :recent command and post updates.

Unfortunately the app doesn't refresh automatically (as it can be seen here )

I tried to debug it myself, but I couldn't find any obvious reasons as to why it wouldn't work

Support for lists

It would be great if :recent supported lists, or if there was a :list command.

Trending Topic support

Is there any plan on support trending topic?

I have made some commands for myself but I'm not sure how to make the UX consistent with the rest of the app.

gem earthquake (0.8.1) has an invalid gemspec

Hello,

trying to get a bundled development environment on OSX Snow Leopard

jmettraux@sanma ~/w 秋 git clone https://github.com/jugyo/earthquake.git
Cloning into earthquake...
remote: Counting objects: 2196, done.
remote: Compressing objects: 100% (981/981), done.
remote: Total 2196 (delta 1251), reused 2071 (delta 1135)
Receiving objects: 100% (2196/2196), 220.72 KiB | 114 KiB/s, done.
Resolving deltas: 100% (1251/1251), done.
jmettraux@sanma ~/w 秋 cd earthquake/
jmettraux@sanma ~/w/earthquake (master) 秋 rvm use 1.9.3-p125
Using /Users/jmettraux/.rvm/gems/ruby-1.9.3-p125
jmettraux@sanma ~/w/earthquake (master) 秋 gem -v
1.8.21
jmettraux@sanma ~/w/earthquake (master) 秋 bundle -v
Bundler version 1.1.3
jmettraux@sanma ~/w/earthquake (master) 秋 bundle install
Fetching gem metadata from http://rubygems.org/.
Unfortunately, the gem earthquake (0.8.1) has an invalid gemspec.
As a result, Bundler cannot install this Gemfile.
Please ask the gem author to yank the bad version to fix this issue.
For more information, see http://bit.ly/syck-defaultkey.

I looked at http://bit.ly/syck-defaultkey and tried to upgrade my RubyGems, but still having the issue with 1.8.21 (as seen above).

@jugyo さん, what about yanking 0.8.1 ? It seems I'm not the only one to have seen that issue: https://twitter.com/#!/sora_h/statuses/177977121510141952

If there is an easier work around, please tell me.

suppress $id expansion

How can I tweet $id, instead of for instance 187363363188248580?

 :update $id
update '187363363188248580' [Yn] n
 :update \$id
update '\187363363188248580' [Yn] n

I investigated it and got the idea to suppress this.
Currently, below sequence is resulted to "Command not found".

 : :update $id
Command not found

The patch below makes ⚡ : (start with colon + space) as a signal not to expand the typable id.

 : :update $id
update '$id' [Yn] n

However, with this patch, we cannot use :reply, (quoted) :retweet, and more perhaps.
Those require the $id to determine the target tweet. One more thing, some commands
are using input() internally, then the input_filter will be applied twice.
Any idea?

Also available: https://gist.github.com/2237938

diff --git a/lib/earthquake/input.rb b/lib/earthquake/input.rb
index 870cefc..9469c25 100644
--- a/lib/earthquake/input.rb
+++ b/lib/earthquake/input.rb
@@ -141,6 +141,7 @@ module Earthquake
     end

     input_filter do |text|
+      next text if text.sub!(/\A: /, "")
       if text =~ %r|^(:\w+)|
         if target = command_aliases[$1]
           text = text.sub(%r|^:\w+|, target)

I don't want to introduce any escape sequences, though ;-).

Retweeting complex tweets causes improper display output

Example: [

[$ef] nicksergeant: RT @AisleOne: Holy mother! The 1976 NASA Graphic Standards Manual. http://j.mp/ntaI6W (retweet of $ee) - 19 Jul 15:39 - Twitter for iPhone
⚡ :retweet $ef /cc @SomaFMRusty
' [Yn] 976 NASA Graphic Standards Manual. http://j.mp/ntaI6W (93404564644040706)'
[$eg] ip2k: /cc @SomaFMRusty RT @nicksergeant: RT @AisleOne: Holy mother! The 1976 NASA Graphic Standards Manual. http://j.mp/ntaI6W (93404564644040706) 19 Jul 15:42 - earthquake.gem

The part I'd like to draw attention here is the stuff in parenthesis. I do not understand where these random numbers ( '(93404564644040706)' )came from, but my guess is that it's a bug.

block via $xx reference

Would be good to be able to block/report_spam someone using their message-reference. easier to type it, that to type username

Add ability to join images

User could choose yfrog, plixi, etc... And there should be a simple way to provide new services.

Then it could be tricked by implicit or explicit ways:

  • if status contains /path/to/image (detected with extension, or directly check file path and check its real type) it could be automatically sent to user's favorite service and status would be updated accordingly.
  • a dedicated command ":image /path/to/image [service]" that would print the final URL.

The favorite service should be configured by user. Maybe ":enable image_service yfrog" could do the trick.

oauth flow broken :(

Just installed fresh. Everything works until I enter the PIN and it tells me it got a 401 Unauthorized. Sad panda. Tried multiple times, copy-pasting the PIN as well.

uninitialized constant Syck::Syck

Hi,
I tried to install earthquake by following the slides, but it doesn't worked for me, so I tried with compiling the latest version of ruby, and I still get the same error message when I use gem install earthquake, here's the full error message => http://pastebin.com/yyLyLJ3e

multibyte update displayed broken

earthquake.gem で、マルチバイトの長い文字列を投稿しようとすると、
下のように表示がおかしくなります。
vimshellのバグかと思いましたが、GNOME Terminalでも再現したため、earthquake.gemのバグと結論付けました。

⚡ ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ
��ああああああああああああああ' [Yn] n

vimshellで、どのようなエスケープシーケンスが出ているのか調べてみると、

ああああああああああああああああああああああああああああああああああああああああああ
ああああああああああああああああああああああああああああああ ^Mあああああああああああああああ^M
update 'あああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ^M<82>ああああああああああああああああああ' [Yn]

となっており、

  1. ^Mがここにでるのはおかしい。^M^@ではないか?
  2. マルチバイトが途中で切れている。

という問題が発生していることが分かります。

error: invalid status code: 401

I've got earthquake installed according to the install instructions for rvm (I'm on gentoo). I'm able to manually get tweets by using :recent but it seems streaming doesn't work. When I launch, I get a notification saying: error: invalid status code: 401 along with: reconnecting in: 10 seconds

I'll then get the reconnecting error message every so often after that. I tried running in debug mode, but none of the program switches seem to do anything, they just leave me in the program prompt and seem to do nothing.

Installation Issue?: Invalid gemspec in [..earthquake-0.8.3.gemspec]: Illformed requirement

I'm probably doing something wrong but when I install I get an error running earthquake:

$earthquake
Invalid gemspec in [/usr/lib/ruby/gems/1.9.1/specifications/earthquake-0.8.3.gemspec]: Illformed requirement ["#Syck::DefaultKey:0x00000001933928 0.4.3"]

$cat earthquake-0.8.3.gemspec | grep -i syck
s.add_runtime_dependency(%q<twitter_oauth>, ["#Syck::DefaultKey:0x00000001933928 0.4.3"])
s.add_dependency(%q<twitter_oauth>, ["#Syck::DefaultKey:0x00000001933928 0.4.3"])
s.add_dependency(%q<twitter_oauth>, ["#Syck::DefaultKey:0x00000001933928 0.4.3"])

$gem uninstall earthquake -i /usr/lib/ruby/gems/1.9.1
Invalid gemspec in [/usr/lib/ruby/gems/1.9.1/specifications/earthquake-0.8.3.gemspec]: Illformed requirement ["#Syck::DefaultKey:0x00000001933928 0.4.3"]
Invalid gemspec in [/usr/lib/ruby/gems/1.9.1/specifications/earthquake-0.8.3.gemspec]: Illformed requirement ["#Syck::DefaultKey:0x00000001933928 0.4.3"]
INFO: gem "earthquake" is not installed

syck.rb initialize error

                         _   _                       _
      ___  __ _ _ __| |_| |__   __ _ _   _  __ _| | _____
     / _ \/ _` | '__| __| '_ \ / _` | | | |/ _` | |/ / _ \
    |  __/ (_| | |  | |_| | | | (_| | |_| | (_| |   <  __/
     \___|\__,_|_|   \__|_| |_|\__, |\__,_|\__,_|_|\_\___|
                              |_|               v0.9.0

    /usr/lib/ruby/1.9.1/syck.rb:145:in `initialize': No such file or directory -       /home/******/work/earthquake/consumer.yml (Errno::ENOENT)
    from /usr/lib/ruby/1.9.1/syck.rb:145:in `open'
    from /usr/lib/ruby/1.9.1/syck.rb:145:in `load_file'
    from /home/*******/work/earthquake/lib/earthquake/core.rb:53:in `load_config'
    from /home/*******/work/earthquake/lib/earthquake/core.rb:35:in `_init'
    from /home/*******/work/earthquake/lib/earthquake/core.rb:96:in `__init'
    from /home/*******/work/earthquake/lib/earthquake/core.rb:106:in `start'
    from /home/*******/bin/earthquake:44:in `&lt;main&gt;'
    [1]    3284 exit 1     earthquake

I updated earthquake.gem today. But the error is appeared.
What's this problem?(I'm not rubyist...)

Issues with SSL/Curl/OSX Lion

I'm having an issue where SSL certs aren't being accepted during plugin installs on OSX. I don't have enough knowledge of Ruby or how it uses curl natively (or if it even does) to fix this properly, but passing the following to all of your open() calls to https:// allows me to at least do what you're attempting to do.

:ssl_verify_mode => OpenSSL::SSL::VERIFY_NONE

I am sure there is a much nicer way to do this, but it certainly permits the desired behaviour.

Configure default confirm action

It would be nice to be able to setup the default action for confirmation messages. At the moment most (or all?) of the confirms default to "yes" and it's impossible to change without modifying the source code.

Can't connect

It looks like an EventMachine/SSL problem, somewhat related to this issue.

So I made a little change to ext.rb:

diff --git a/lib/earthquake/ext.rb b/lib/earthquake/ext.rb                           
index 7a8a00d..c6cd966 100644                                                        
--- a/lib/earthquake/ext.rb                                                          
+++ b/lib/earthquake/ext.rb                                                          
@@ -5,12 +5,12 @@ module Twitter                                                     
       @reconnect_callback.call(timeout, @reconnect_retries) if @reconnect_callback  

       if timeout == 0                                                               
-        reconnect @options[:host], @options[:port]                                  
         start_tls if @options[:ssl]                                                 
+        reconnect @options[:host], @options[:port]                                  
       else                                                                          
         EventMachine.add_timer(timeout) do                                          
-          reconnect @options[:host], @options[:port]                                
           start_tls if @options[:ssl]                                               
+          reconnect @options[:host], @options[:port]                                
         end                                                                         
       end                                                                           
     end                                                                             

(before that earthquake would just crash with the same error as in the mentioned EM issue)

...and now I get this:

 │vagrant > lukasz: bin/earthquake [ruby-1.9.3@earthquake]  master ~/Projects/earthquake              
 │                 _   _                       _                                                      
 │  ___  __ _ _ __| |_| |__   __ _ _   _  __ _| | _____                                               
 │ / _ \/ _` | '__| __| '_ \ / _` | | | |/ _` | |/ / _ \                                              
 │|  __/ (_| | |  | |_| | | | (_| | |_| | (_| |   <  __/                                              
 │ \___|\__,_|_|   \__|_| |_|\__, |\__,_|\__,_|_|\_\___|                                              
 │                              |_|               v0.9.0                                              
 │                                                                                                    
 │1) open:                                                                                            
 https://api.twitter.com/oauth/authorize?oauth_token=csNTygR3B5ow8bT4QllWseqLAOABbqmyU9NeGpvcw        
 │Failure in opening                                                                                  
 https://api.twitter.com/oauth/authorize?oauth_token=csNTygR3B5ow8bT4QllWseqLAOABbqmyU9NeGpvcw        
 with                                                                                                 
 │options {}: Unable to find a browser command. If this is unexpected, Please                         
 rerun with environment variable LAUNCHY_DE                                                           
 │BUG=true or the '-d' commandline option and file a bug at                                           
 https://github.com/copiousfreetime/launchy/issues/new                                                
 │2) Enter the PIN: 6174205                                                                           
 │Saving 'token' and 'secret' to '/home/lukasz/.earthquake/config'                                    
 │⚡ earthquake: error: invalid status code: 401.                                                      
 │earthquake: reconnecting in: 10 seconds                                                             
 │earthquake: reconnecting in: 20 seconds                                                             
 │earthquake: reconnecting in: 40 seconds                                                             
 │earthquake: reconnecting in: 80 seconds                                                             
 │earthquake: reconnecting in: 160 seconds                                                            
 │earthquake: reconnecting in: 320 seconds                                                            

OS: Debian Squeeze
Ruby 1.9.3 and 1.9.2
Earthquake version 0.8.5 and up

Crashes on launch on Mac OS X 10.6

Whenever I launch earthquake I get the following error, followed by a crash:

                 _   _                       _
  ___  __ _ _ __| |_| |__   __ _ _   _  __ _| | _____
 / _ \/ _` | '__| __| '_ \ / _` | | | |/ _` | |/ / _ \
|  __/ (_| | |  | |_| | | | (_| | |_| | (_| |   <  __/
 \___|\__,_|_|   \__|_| |_|\__, |\__,_|\__,_|_|\_\___|
                              |_|               v0.8.3

/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/eventmachine-0.12.10/lib/rubyeventmachine.bundle: [BUG] Segmentation fault
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0]

-- control frame ----------
c:0039 p:-540475476 s:0151 b:0151 l:000150 d:000150 TOP   
c:0038 p:---- s:0149 b:0149 l:000148 d:000148 CFUNC  :require
c:0037 p:0174 s:0145 b:0145 l:000144 d:000144 METHOD /Users/mark/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55
c:0036 p:0012 s:0138 b:0138 l:000122 d:000137 BLOCK  /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240
c:0035 p:0005 s:0136 b:0136 l:000127 d:000135 BLOCK  /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223
c:0034 p:0045 s:0134 b:0134 l:000133 d:000133 METHOD /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:640
c:0033 p:0041 s:0128 b:0128 l:000127 d:000127 METHOD /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223
c:0032 p:0019 s:0123 b:0123 l:000122 d:000122 METHOD /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240
c:0031 p:0150 s:0117 b:0117 l:000116 d:000116 TOP    /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/eventmachine-0.12.10/lib/eventmachine.rb:66
c:0030 p:---- s:0115 b:0115 l:000114 d:000114 FINISH
c:0029 p:---- s:0113 b:0113 l:000112 d:000112 CFUNC  :require
c:0028 p:0174 s:0109 b:0109 l:000108 d:000108 METHOD /Users/mark/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55
c:0027 p:0012 s:0102 b:0102 l:000086 d:000101 BLOCK  /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240
c:0026 p:0005 s:0100 b:0100 l:000091 d:000099 BLOCK  /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223
c:0025 p:0045 s:0098 b:0098 l:000097 d:000097 METHOD /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:640
c:0024 p:0041 s:0092 b:0092 l:000091 d:000091 METHOD /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223
c:0023 p:0019 s:0087 b:0087 l:000086 d:000086 METHOD /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240
c:0022 p:0011 s:0081 b:0081 l:000080 d:000080 TOP    /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/twitter-stream-0.1.14/lib/twitter/json_stream.rb:1
c:0021 p:---- s:0079 b:0079 l:000078 d:000078 FINISH
c:0020 p:---- s:0077 b:0077 l:000076 d:000076 CFUNC  :require
c:0019 p:0174 s:0073 b:0073 l:000072 d:000072 METHOD /Users/mark/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55
c:0018 p:0012 s:0066 b:0066 l:000050 d:000065 BLOCK  /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240
c:0017 p:0005 s:0064 b:0064 l:000055 d:000063 BLOCK  /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223
c:0016 p:0045 s:0062 b:0062 l:000061 d:000061 METHOD /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:640
c:0015 p:0041 s:0056 b:0056 l:000055 d:000055 METHOD /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223
c:0014 p:0019 s:0051 b:0051 l:000050 d:000050 METHOD /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240
c:0013 p:0012 s:0045 b:0045 l:000036 d:000044 BLOCK  /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/earthquake-0.8.3/lib/earthquake.rb:14
c:0012 p:---- s:0042 b:0042 l:000041 d:000041 FINISH
c:0011 p:---- s:0040 b:0040 l:000039 d:000039 CFUNC  :each
c:0010 p:0034 s:0037 b:0037 l:000036 d:000036 TOP    /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/earthquake-0.8.3/lib/earthquake.rb:3
c:0009 p:---- s:0035 b:0035 l:000034 d:000034 FINISH
c:0008 p:---- s:0033 b:0033 l:000032 d:000032 CFUNC  :require
c:0007 p:0174 s:0029 b:0029 l:000028 d:000028 METHOD /Users/mark/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55
c:0006 p:0445 s:0022 b:0022 l:000021 d:000021 TOP    /Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/earthquake-0.8.3/bin/earthquake:44
c:0005 p:---- s:0013 b:0013 l:000012 d:000012 FINISH
c:0004 p:---- s:0011 b:0011 l:000010 d:000010 CFUNC  :load
c:0003 p:0127 s:0007 b:0007 l:0014e8 d:0009d0 EVAL   /Users/mark/.rvm/gems/ruby-1.9.2-p290/bin/earthquake:19
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:0014e8 d:0014e8 TOP   
---------------------------
-- Ruby level backtrace information ----------------------------------------
/Users/mark/.rvm/gems/ruby-1.9.2-p290/bin/earthquake:19:in `<main>'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/bin/earthquake:19:in `load'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/earthquake-0.8.3/bin/earthquake:44:in `<top (required)>'
/Users/mark/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
/Users/mark/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/earthquake-0.8.3/lib/earthquake.rb:3:in `<top (required)>'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/earthquake-0.8.3/lib/earthquake.rb:3:in `each'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/earthquake-0.8.3/lib/earthquake.rb:14:in `block in <top (required)>'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `require'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223:in `load_dependency'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:640:in `new_constants_in'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223:in `block in load_dependency'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `block in require'
/Users/mark/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
/Users/mark/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/twitter-stream-0.1.14/lib/twitter/json_stream.rb:1:in `<top (required)>'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `require'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223:in `load_dependency'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:640:in `new_constants_in'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223:in `block in load_dependency'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `block in require'
/Users/mark/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
/Users/mark/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/eventmachine-0.12.10/lib/eventmachine.rb:66:in `<top (required)>'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `require'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223:in `load_dependency'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:640:in `new_constants_in'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223:in `block in load_dependency'
/Users/mark/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `block in require'
/Users/mark/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
/Users/mark/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'

-- C level backtrace information -------------------------------------------

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

[1]    9438 abort      earthquake

Optional: Detect shortened URLs and replace with longer

Should be optional, and may be enabled with a command such like ":enable auto_expand_urls".
Then messages will appear with shortened URLs replaced with the full ones.

Could be called manually with a command like ":expand_urls " (prints the message with full URLs) and/or ":expand_url " (prints full url).

Resume interrupted stream

When my Mac goes to sleep, internet is put off. After awaking it, I no longer receive new tweets. :recent still works and restarting earthquake also makes them work again.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.