aboutsummaryrefslogtreecommitdiffstats
path: root/config/routes.rb
blob: 4b60c8303213e50aa7e0420640583feb87ede0ab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
Aclog::Application.routes.draw do
  root to: "about#index"

  scope format: false do
    get "/search" => "search#search", as: "search"

    # Internals / SessionsController
    get "/i/import/:id" =>  "i#import",         as: "import"
    get "/i/callback" =>    "sessions#callback"
    get "/i/logout" =>      "sessions#destroy", as: "logout"

    # ReportController
    get "/i/report" => "report#index",          as: "report"
    post "/i/report/tweet" => "report#tweet"

    scope "about", controller: "about" do
      get "/",              action: "about",    as: "about"
      get "/api",           action: "api",      as: "about_api"
    end

    # /i/
    scope :i, controller: :tweets do
      get "/best",      action: "all_best",     as: "best"
      get "/recent",    action: "all_recent",   as: "recent"
      get "/timeline",  action: "all_timeline", as: "timeline"
      get "/:id",       action: "show",         as: "tweet"
    end

    # JSON API
    scope "api", format: "json" do
      get "/users/:action", controller: "users"
      get "/tweets/:action", controller: "tweets"
    end

    # Favstar redirects
    get "(/users)/:screen_name/status(es)/:id" => redirect("/i/%{id}")
    scope "users/:screen_name" do
      get "/" =>                            redirect("/%{screen_name}")
      get "/most_favorited" =>              redirect("/%{screen_name}/favorited")
      get "/most_retweeted" =>              redirect("/%{screen_name}/retweeted")
      get "/discovered" =>                  redirect("/%{screen_name}/discoveries")
      get "/favorited" =>                   redirect("/%{screen_name}/favorites")
      get "/given" =>                       redirect("/%{screen_name}/favorites")
      get "/retweeted" =>                   redirect("/%{screen_name}/retweets")
      get "/recent" =>                      redirect("/%{screen_name}/timeline")
      get "/favs_from" =>                   redirect("/%{screen_name}/discovered_by")
      get "/retweeted_by" =>                redirect("/%{screen_name}/discovered_by")
      get "/favs_from/:screen_name_b" =>    redirect("/%{screen_name}/discovered_by/%{screen_name_b}")
      get "/retweeted_by/:screen_name_b" => redirect("/%{screen_name}/discovered_by/%{screen_name_b}")
      get "/given_to" =>                    redirect("/%{screen_name}/discovered_users")
      get "/given_to/:screen_name_b" =>     redirect("/%{screen_name_b}/discovered_by/%{screen_name}")
    end

    # User pages.
    scope ":screen_name", controller: "users" do
      get "/stats",                         action: "stats",            as: "user_stats"
      get "/discovered_by",                 action: "discovered_by",    as: "user_discovered_by"
      get "/discovered_users",              action: "discovered_users", as: "user_discovered_users"
    end

    scope ":screen_name", controller: "tweets" do
      get "/",                              action: "best",          as: "user_best"
      get "/favorited",                     action: "favorited",     as: "user_favorited"
      get "/retweeted",                     action: "retweeted",     as: "user_retweeted"
      get "/recent",                        action: "recent",        as: "user_recent"
      get "/timeline",                      action: "timeline",      as: "user_timeline"
      get "/discoveries",                   action: "discoveries",   as: "user_discoveries"
      get "/favorites",                     action: "favorites",     as: "user_favorites"
      get "/retweets",                      action: "retweets",      as: "user_retweets"
      get "/discovered_by/:screen_name_b",  action: "discovered_by", as: "user_discovered_by_user"
    end

    # Old URLs
    scope ":screen_name" do
      get "/discovered" =>                        redirect("/%{screen_name}/discoveries")
      get "/info" =>                              redirect("/%{screen_name}/stats")
      get "/favorited_by" =>                      redirect("/%{screen_name}/discovered_by")
      get "/retweeted_by" =>                      redirect("/%{screen_name}/discovered_by")
      get "/favorited_by/:screen_name_b" =>       redirect("/%{screen_name}/discovered_by/%{screen_name_b}")
      get "/retweeted_by/:screen_name_b" =>       redirect("/%{screen_name}/discovered_by/%{screen_name_b}")
      get "/given_favorites_to" =>                redirect("/%{screen_name}/discovered_user")
      get "/given_retweets_to" =>                 redirect("/%{screen_name}/discovered_user")
      get "/given_favorites_to/:screen_name_b" => redirect("/%{screen_name_b}/discovered_by/%{screen_name}")
      get "/given_retweets_to/:screen_name_b" =>  redirect("/%{screen_name_b}/discovered_by/%{screen_name}")
    end
  end
end