Git Product home page Git Product logo

arabica's Introduction

Welcome to the arabica wiki!

概要

twitterのユーザが見ているタイムラインから、URLを抜き出して一覧表示するサービスを作ります。

背景

twitterは140文字の文化でさくっと確認できますが、中にURLが含まれているものはリンク先まで辿ってみるのは時間がかかり、大抵そのままスルーするか、starを付けるなりして後で参照します。 そこで、URLのみを収集して一覧表示することで、そのあたりの面倒さを解消します。

類似サービス

  • retime.me -- ネタ元 -- Oauth認証は一覧からユーザのツイートに対し更新処理ができるため?
  • readtwit -- 未使用 URLをあつめるだけなのに面倒そう。あと日本語じゃない -- RSS出力してくれる
  • tubuclip -- メンテナンス中でUI確認できず→メンテナンスからは復帰。ホームは自分のタイムラインからURL付きのtweetを抽出して表示してるだけなので、一見ただのtwitterクライアント。スポーツとかカテゴリに分類してあるのが売りっぽいけど現状404となった。

target browser

#8

chrome, firefoxではきちんと見えるようにする。 それ以外は余裕のあるとき。

arabica's People

Contributors

u1tnk avatar kei-q avatar 1syo avatar

Stargazers

Kazuki Matsumoto avatar Shinya Uryu avatar  avatar Takeshi Yabe avatar  avatar

Watchers

James Cloos avatar

arabica's Issues

issuesやwikiで、コミットや特定の行に対するリンクをはる方法

issuesを書くとき、あるcommitのページや、特定の行などにリンクを貼りたいときがあります。githubならもしかしたら簡略記法があるかもしれないので、その方法を確認したいなと思います。

開発支援labelは、コードを書くような作業ではないものの、作業を円滑にするためのチケットを区別したいと思い作成しました。
どうしても書きたかったので、適当にlabel名決めて勝手にlabel作ってしまいました。問題があれば指摘お願いします。

動作対象のブラウザを決める

全てのブラウザで同じように見えるように作るのが理想ですが、そのように作るにはCSSの解釈違いなどで多くの時間が必要になるかもしれません。
最低限きちんと見えてほしいブラウザと、そうでないブラウザを決めると良いかと思います。
個人的にはchromeかfirefoxで動作確認をして、それ以外のブラウザでは大きな表示崩れがなければ良し、とするのが無難かなと思います

chrome
firefox
safari
opera
IE

デモページや画面を提供して、ユーザが使用しているイメージを作れるようにする

いまのところtwitterのoauth認証してからでないと見られないという仕様にしているため、どのような感じのツールかわからずに認証することになり、一部の人には敷居が高く感じると思います。
retime.meではトップページのスクリーンショットを載せ、どのように情報が表示されるのかをあらかじめユーザに伝えています。
こうすることで、認証前にユーザが自分の使用している状況をイメージでき、認証する気になるかと思います

方法はいろいろあると思いますが、すぐ思い付くのは

  • retime.meと同様にトップにスクリーンショットを貼る
  • public_timelineを表示するページを作成し、それは全員が見られるようにする

必須の機能ではないので、優先度低めで検討

urlからtitleを取得する

以下のコミットでtweetsのデータからurlsを生成するメソッドを作成しましたが、深夜で力尽きたためurlからtitleを取得する処理を実装していません。
schemaにはtitleを追加してあるので、そこにデータを格納する処理を実装します。
d660c12

retweetのとき、もとのtweetしたユーザがなんらかの形でわかるようにする

retime.meではretweetによるURLはretweetしたユーザが情報としてでてきますが、tweetもとのユーザのことは画面に表示されません。そのようなURLに興味を持った場合、本来のtweetを発したユーザに対しても興味がある可能性が高く、のちのちそのユーザをフォローしたり、他のURLを追うきっかけになるので、なんらかの形でそのユーザを表示できるといいかなと思います。

名前検討

Arabicaで良いか?
良いのがなかったらこのままだけど、わかりやすくは無いよねー。

NGワード
re
time さすがにパクり元とかぶるのは…
-tter 今さら…

キーワード
scrap スクラップノートを作るイメージ
time line やっぱtweetじゃなくてtime lineを対象にしてる事がわかると良いかと


time line scrapper そのまますぎるか…

スクラップってキーワードは悪くないかなと思うけど、案がまとまらない…
他のキーワードも含めて考えましょう。

tl上のURL重複を解決する

とりあえず表示上は重複urlが無いようにする。
get paramとかの被りは対処が難しいので保留。
urlsテーブルの重複もあったりするが、最初は考えずに、ruby側で対処する

動作環境整備

さくらVPSのアカウント作成
twitter-auth入れてログイン画面作る

短縮URLを展開する

twitterでは多くの短縮URLが飛び交うので、同じURLを見分けられるようにする

本番環境選定

マジメにheroku検討したけど、cron dailyはともかく非同期処理は最初から有料、月35$なので高いかと。
非同期処理ほぼいらないサイトなら良さそうだけど。

選択肢は以下
・今の私のVPS使う
・新しくVPS借りる
・今のVPS等をワーカーに使ってウェブのみheroku(ワーカ分離がめんどくさそうではある)
・AmazonEC2の1年目無料を利用(万一そこそこアクセスあると従量課金されてしまうリスクあり)

とりあえずは今のVPSでプライベートベータやって、データ量、負荷によって別の選択肢を検討で良いかと思うのでコメントして問題無ければクローズしてください。

urlsテーブルに、urlとtitle以外にユーザが参考になる情報を加える

retime.meではページの先頭の文章を引用して、リンク先の情報を提供しています
現状url, title, tweetした人の情報、tweetした人の文章があればリンク先を見るかどうかの参考になりますが、SBMの数などを加えると面白いかもしれません。

必須ではないので他のチケットを優先
このチケットはアイデア出して、そのアイデアの実装を別チケットとして作成したらcloseの予定

既存のコードでテストが必要な部分を確認する

これまでテストコードを書いていないので、今後コードが増えるまえに少しずつ書いてくのがいいかなと思います。
デフォルトではrspecになっていると思いますが、rspecやshouldaをはじめいろいろなツールがあるかと思いますので、使いたいツールがある場合はGemfileに追加するまえにお互い確認しておくと良いとおもいます。
のちのちCIツールを使えるようになると夢が広がりますね。

unknown attribute: profile_background_image_url_https

timetileを取得しているときに上記のエラーが表示されてしまい、DBにtweetが格納できませんでした。
昨日は問題無かったと思うのですが、今日ためしたら上記のようなエラーがでてしまいました。
原因がわからないです……。

stack trace

app/controllers/time_line_controller.rb:25:in `new'
app/controllers/time_line_controller.rb:25:in `block in index'
app/controllers/time_line_controller.rb:9:in `each'
app/controllers/time_line_controller.rb:9:in `index'

commitはd660c1251までpull済み

ひとつのtweetに複数のurlが含まれる場合の仕様を決める

大抵のtweetにはひとつのurlしか含まれていないが、たまに複数のurlが含まれているものがある。
この場合、どのような処理を行うか考える。

メモ

  • urlの情報を無視するのは無し
  • 単にurlがある分だけloopまわして、複数のtweetがあるように処理する?

タイムライン内のユーザ情報取得

ユーザ情報取得して、usersテーブルに格納。
ログインテーブルと共通のスキーマなので、作成後にログインされら場合にもちゃんと動くように配慮する。

リンクが1件しか取得できていない

localhost:3000/tlで一覧を表示させると、TL上では複数のURLが確認できるにもかかわらず一件しか表示されない。
DBのなかを見ると一件しか記録されていなかった。

結果一覧のUIモックを作成する

UIモックを作ると必要な情報などが具体的にイメージできるようになるので、まずはURLを一覧表示するであろう画面を適当に作成してみる

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.