|
31 | 31 | (render [this]
|
32 | 32 | (dom/span nil "Indexed: " (dom/strong nil (:total-tweet-count app)) " tweets"))))
|
33 | 33 |
|
34 |
| -(def find-tweets {:by-id (util/tweets-by-order :tweets-map :by-id) |
35 |
| - :by-followers (util/tweets-by-order :tweets-map :by-followers) |
36 |
| - :by-retweets (util/tweets-by-order :retweets :by-retweets) |
37 |
| - :by-favorites (util/tweets-by-order :retweets :by-favorites) |
38 |
| - :by-rt-since-startup (util/tweets-by-order :retweets :by-rt-since-startup)}) |
39 |
| - |
40 |
| -(def find-tweets2 {:by-id (util/tweet-ids-by-order :tweets-map :by-id) |
41 |
| - :by-followers (util/tweet-ids-by-order :tweets-map :by-followers) |
42 |
| - :by-retweets (util/tweet-ids-by-order :retweets :by-retweets) |
43 |
| - :by-favorites (util/tweet-ids-by-order :retweets :by-favorites) |
44 |
| - :by-rt-since-startup (util/tweet-ids-by-order :retweets :by-rt-since-startup)}) |
45 |
| - |
46 | 34 | (defn sort-button-js [app key]
|
47 | 35 | "generates JS for sort button for both updating sort order and showing active button"
|
48 | 36 | #js {:onClick (fn [e] (om/update! app [:sorted] key))
|
|
80 | 68 | (dom/button #js {:className "btn btn-primary" :onClick #(comm/start-search)}
|
81 | 69 | (dom/span #js {:className "glyphicon glyphicon-search"})))))))
|
82 | 70 |
|
83 |
| -(defn twitter-intent [tweet intent icon] |
84 |
| - "generate link with button customized for specific tweet and intent" |
85 |
| - (dom/a #js {:href (str "https://twitter.com/intent/" intent (:id_str tweet))} |
86 |
| - (dom/img #js {:src (str "/images/" icon)}))) |
87 |
| - |
88 |
| -#_(defn tweet-view [tid owner] |
89 |
| - "rendering single tweet card" |
90 |
| - (print tid) |
91 |
| - (let [raw-tweet ((first tid) (:tweets-map @state/app))] |
92 |
| - (reify |
93 |
| - om/IRender |
94 |
| - (render [this] |
95 |
| - (if (:user raw-tweet) |
96 |
| - (let [tweet (util/format-tweet raw-tweet) |
97 |
| - user (:user tweet) |
98 |
| - screen-name (:screen_name user) |
99 |
| - href (str "http://www.twitter.com/" screen-name) |
100 |
| - media (:media (:entities tweet))] |
101 |
| - (dom/div #js {:className "tweet"} |
102 |
| - (dom/span nil (dom/a #js {:href href :target "_blank"} |
103 |
| - (dom/img #js {:className "thumbnail" :src (:profile_image_url user)}))) |
104 |
| - (dom/a #js {:href href :target "_blank"} |
105 |
| - (dom/span #js {:className "username" :src (:profile_image_url user)} (:name user))) |
106 |
| - (dom/span #js {:className "username_screen"} (str " @" screen-name)) |
107 |
| - (dom/div #js {:className "pull-right timeInterval"} (util/from-now (:created_at tweet))) |
108 |
| - (dom/div #js {:className "tweettext"} |
109 |
| - (dom/div #js {:dangerouslySetInnerHTML #js {:__html (:html-text tweet)}}) |
110 |
| - (dom/div #js {:className "pull-left timeInterval"} |
111 |
| - (str (util/number-format (:followers_count user)) " followers")) |
112 |
| - (dom/div #js {:className "pull-right timeInterval"} |
113 |
| - (str (util/rt-count-since-startup tweet) |
114 |
| - (util/rt-count tweet) |
115 |
| - (util/fav-count tweet)))) |
116 |
| - (when (> (count media) 0) |
117 |
| - (dom/div #js {:className "tweet-image"} |
118 |
| - (dom/a #js {:href (:url (get media 0)) :target "_blank"} |
119 |
| - (dom/img #js {:src (str (:media_url (get media 0)) ":small")})))) |
120 |
| - (dom/div #js {:className "intent"} |
121 |
| - (twitter-intent tweet "tweet?in_reply_to=" "reply.png") |
122 |
| - (twitter-intent tweet "retweet?tweet_id=" "retweet.png") |
123 |
| - (twitter-intent tweet "favorite?tweet_id=" "favorite.png")))) |
124 |
| - (do |
125 |
| - (print "hello") |
126 |
| - ;(print ((keyword (:id_str raw-tweet)) (:tweets-map @state/app))) |
127 |
| - ;(put! c/tweet-missing-chan tid) |
128 |
| - ;(dom/div #js {:className "tweet"} "loading... " tid) |
129 |
| - |
130 |
| - )))))) |
131 |
| - |
132 |
| - |
133 |
| - |
134 |
| -(defn tweet-view [raw-tweet-entry owner] |
135 |
| - "rendering single tweet card" |
136 |
| - (print "raw-tweet") |
137 |
| - (print raw-tweet-entry) |
138 |
| - (let [raw-tweet ((keyword (:id_str raw-tweet-entry)) (:tweets-map @state/app))] |
139 |
| - (reify |
140 |
| - om/IRender |
141 |
| - (render [this] |
142 |
| - (if (:user raw-tweet) |
143 |
| - (let [tweet (util/format-tweet raw-tweet) |
144 |
| - user (:user tweet) |
145 |
| - screen-name (:screen_name user) |
146 |
| - href (str "http://www.twitter.com/" screen-name) |
147 |
| - media (:media (:entities tweet))] |
148 |
| - (dom/div #js {:className "tweet"} |
149 |
| - (dom/span nil (dom/a #js {:href href :target "_blank"} |
150 |
| - (dom/img #js {:className "thumbnail" :src (:profile_image_url user)}))) |
151 |
| - (dom/a #js {:href href :target "_blank"} |
152 |
| - (dom/span #js {:className "username" :src (:profile_image_url user)} (:name user))) |
153 |
| - (dom/span #js {:className "username_screen"} (str " @" screen-name)) |
154 |
| - (dom/div #js {:className "pull-right timeInterval"} (util/from-now (:created_at tweet))) |
155 |
| - (dom/div #js {:className "tweettext"} |
156 |
| - (dom/div #js {:dangerouslySetInnerHTML #js {:__html (:html-text tweet)}}) |
157 |
| - (dom/div #js {:className "pull-left timeInterval"} |
158 |
| - (str (util/number-format (:followers_count user)) " followers")) |
159 |
| - (dom/div #js {:className "pull-right timeInterval"} |
160 |
| - (str (util/rt-count-since-startup tweet) |
161 |
| - (util/rt-count tweet) |
162 |
| - (util/fav-count tweet)))) |
163 |
| - (when (> (count media) 0) |
164 |
| - (dom/div #js {:className "tweet-image"} |
165 |
| - (dom/a #js {:href (:url (get media 0)) :target "_blank"} |
166 |
| - (dom/img #js {:src (str (:media_url (get media 0)) ":small")})))) |
167 |
| - (dom/div #js {:className "intent"} |
168 |
| - (twitter-intent tweet "tweet?in_reply_to=" "reply.png") |
169 |
| - (twitter-intent tweet "retweet?tweet_id=" "retweet.png") |
170 |
| - (twitter-intent tweet "favorite?tweet_id=" "favorite.png")))) |
171 |
| - (do |
172 |
| - (print "hello") |
173 |
| - ;(print ((keyword (:id_str raw-tweet)) (:tweets-map @state/app))) |
174 |
| - (put! c/tweet-missing-chan (:id_str raw-tweet-entry)) |
175 |
| - (dom/div #js {:className "tweet"} "loading... " (:id_str raw-tweet-entry)))))))) |
176 |
| - |
177 |
| -(defn tweets-view [app owner] |
178 |
| - "rendering tweet list" |
179 |
| - (reify |
180 |
| - om/IRender |
181 |
| - (render [this] |
182 |
| - (let [tweets (((:sorted app) find-tweets) app (:n app) (- (:page app) 1))] |
183 |
| - (print "load tweets") |
184 |
| - (print (count tweets)) |
185 |
| - (print tweets) |
186 |
| - (apply dom/div nil (om/build-all |
187 |
| - tweet-view |
188 |
| - tweets)))))) |
189 |
| - |
190 | 71 | (defn pag-items [app page-change-chan]
|
191 | 72 | "function creating pagination items"
|
192 | 73 | (map #(dom/li #js {:className (if (= % (:page app)) "active" "") :onClick (fn [e] (put! page-change-chan %))}
|
|
0 commit comments