aboutsummaryrefslogtreecommitdiff
path: root/lisp/mastodon-tl.el.orig
diff options
context:
space:
mode:
authorAlexander Griffith <griffitaj@gmail.com>2017-04-24 21:41:27 -0400
committerJohnson Denen <johnson.denen@gmail.com>2017-04-24 23:18:59 -0400
commitef97217ad9dcf97139b95a90d7faf672720be512 (patch)
tree485ad4779c546cf5ce1678e6c1eca24a83b58e0a /lisp/mastodon-tl.el.orig
parent1c9f73205ed59a7b0cac171ace20219aa347fcea (diff)
Cleaned up #41 workspace
Diffstat (limited to 'lisp/mastodon-tl.el.orig')
-rw-r--r--lisp/mastodon-tl.el.orig313
1 files changed, 0 insertions, 313 deletions
diff --git a/lisp/mastodon-tl.el.orig b/lisp/mastodon-tl.el.orig
deleted file mode 100644
index 39eb9ce..0000000
--- a/lisp/mastodon-tl.el.orig
+++ /dev/null
@@ -1,313 +0,0 @@
-;;; mastodon-tl.el --- HTTP request/response functions for mastodon.el
-
-;; Copyright (C) 2017 Johnson Denen
-;; Author: Johnson Denen <johnson.denen@gmail.com>
-;; Version: 0.5.5
-;; Homepage: https://github.com/jdenen/mastodon.el
-
-;; This file is not part of GNU Emacs.
-
-;; This file is part of mastodon.el.
-
-;; mastodon.el is free software: you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; mastodon.el is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with mastodon.el. If not, see <http://www.gnu.org/licenses/>.
-
-;;; Commentary:
-
-;; mastodon-tl.el provides timeline functions.
-
-;;; Code:
-
-<<<<<<< HEAD
-(require 'mastodon-http)
-(require 'mastodon-toot)
-(require 'mastodon-media)
-=======
-(require 'mastodon-http nil t)
-(require 'mastodon-toot nil t)
->>>>>>> 3cb5a6a9be2811b63a254d1c00b7ba30460d7629
-
-(defgroup mastodon-tl nil
- "Timelines in Mastodon."
- :prefix "mastodon-tl-"
- :group 'mastodon)
-
-(defun mastodon-tl--get-federated-timeline ()
- "Opens federated timeline."
- (interactive)
- (mastodon-tl--get "public"))
-
-(defun mastodon-tl--get-home-timeline ()
- "Opens home timeline."
- (interactive)
- (mastodon-tl--get "home"))
-
-(defun mastodon-tl--get-local-timeline ()
- "Opens local timeline."
- (interactive)
- (mastodon-tl--get "public?local=true"))
-
-(defun mastodon-tl--get-tag-timeline ()
- "Prompts for tag and opens its timeline."
- (interactive)
- (let ((tag (read-string "Tag: ")))
- (mastodon-tl--get (concat "tag/" tag))))
-
-(defun mastodon-tl--goto-toot-pos (find-pos refresh &optional pos)
- "Search for toot with FIND-POS.
-If search returns nil, execute REFRESH function.
-
-Optionally start from POS."
- (let* ((npos (funcall find-pos
- (or pos (point))
- 'toot-id
- (current-buffer))))
- (if npos
- (if (not (get-text-property npos 'toot-id))
- (mastodon-tl--goto-toot-pos find-pos refresh npos)
- (goto-char npos))
- (funcall refresh))))
-
-(defun mastodon-tl--goto-next-toot ()
- "Jump to next toot header."
- (interactive)
- (mastodon-tl--goto-toot-pos 'next-single-property-change
- 'mastodon-tl--more))
-
-(defun mastodon-tl--goto-prev-toot ()
- "Jump to last toot header."
- (interactive)
- (mastodon-tl--goto-toot-pos 'previous-single-property-change
- 'mastodon-tl--update))
-
-(defun mastodon-tl--timeline-name ()
- "Determine timeline from `buffer-name'."
- (replace-regexp-in-string "\*" ""
- (replace-regexp-in-string "mastodon-" "" (buffer-name))))
-
-(defun mastodon-tl--remove-html (toot)
- "Remove unrendered tags from TOOT."
- (let* ((t1 (replace-regexp-in-string "<\/p>" "\n\n" toot))
- (t2 (replace-regexp-in-string "<\/?span>" "" t1)))
- (replace-regexp-in-string "<span class=\"h-card\">" "" t2)))
-
-(defun mastodon-tl--byline-author (toot)
- "Propertize author of TOOT."
- (let* ((account (cdr (assoc 'account toot)))
- ;; It may not be necissary to decode the handle
- (handle (decode-coding-string
- (cdr (assoc 'acct account))'utf-8))
- (name (decode-coding-string
- (cdr (assoc 'display_name account)) 'utf-8)))
- (concat
- (propertize name 'face 'warning)
- " (@"
- handle
- ")")))
-
-(defun mastodon-tl--byline-boosted (toot)
- "Add byline for boosted data from TOOT."
- (let ((reblog (cdr (assoc 'reblog toot))))
- (when reblog
- (concat
- " "
- (propertize "Boosted" 'face 'highlight)
- " "
- (mastodon-tl--byline-author reblog)))))
-
-(defun mastodon-tl--field (field toot)
- "Return FIELD from TOOT.
-
-Return value from boosted content if available."
- (or (cdr (assoc field (cdr (assoc 'reblog toot))))
- (cdr (assoc field toot))))
-
-(defun mastodon-tl--byline (toot)
- "Generate byline for TOOT."
- (let ((id (cdr (assoc 'id toot)))
- (faved (mastodon-tl--field 'favourited toot))
- (boosted (mastodon-tl--field 'reblogged toot)))
- (propertize
- (concat (propertize "\n | " 'face 'default)
- (when boosted
- (format "(%s) " (propertize "B" 'face 'success)))
- (when faved
- (format "(%s) " (propertize "F" 'face 'success)))
- (mastodon-tl--byline-author toot)
- (mastodon-tl--byline-boosted toot)
- (propertize "\n ------------" 'face 'default))
- 'toot-id id
- 'toot-json toot)))
-
-
-(defun mastodon-tl--set-face (string face render)
- "Set the face of a string. If `render' is not 'nil
-also render the html"
- (propertize
- (with-temp-buffer
- (insert (decode-coding-string string 'utf-8))
- (when render
- (shr-render-region (point-min) (point-max)))
- (buffer-string))
- 'face face))
-
-(defun mastodon-tl--spoiler (toot)
- "Retrieve spoiler message from TOOT."
- (let* ((spoiler (mastodon-tl--field 'spoiler_text toot))
- (string (mastodon-tl--set-face spoiler 'default t))
- (message (concat "\n ---------------"
- "\n Content Warning"
- "\n ---------------\n"))
- (cw (mastodon-tl--set-face message 'success 'nil)))
- (if (> (length string) 0)
- (replace-regexp-in-string "\n\n\n ---------------"
- "\n ---------------" (concat string cw))
- "")))
-
-
-(defun mastodon-tl--media (toot)
- "Retreive a media attachment link if one exits"
- (let ((media (mastodon-tl--field 'media_attachments toot)))
- (if(> (length media) 0 )
- ;; Extract the preview_url, other options here
- ;; are url and remote_url
- (let ((link (cdr(assoc 'preview_url (elt media 0)))))
- (concat "Media_Link:: "
- (mastodon-tl--set-face link 'mouse-face 'nil)))
- ;; Otherwise return an empty string
- "")))
-
-(defun mastodon-tl--content (toot)
- "Retrieve text content from TOOT."
- (let ((content (mastodon-tl--field 'content toot)))
- (propertize (with-temp-buffer
- (insert (decode-coding-string content 'utf-8))
- (shr-render-region (point-min) (point-max))
- (buffer-string))
- 'face 'default)))
-
-(defun mastodon-tl--toot (toot)
- "Display TOOT content and byline."
- (insert
- (concat
- (mastodon-tl--spoiler toot)
- (mastodon-tl--content toot)
- (mastodon-tl--media toot)
- (mastodon-tl--byline toot)
- "\n\n")))
-
-(defun mastodon-tl--timeline (toots)
- "Display each toot in TOOTS."
- (mapcar 'mastodon-tl--toot toots)
- (replace-regexp "\n\n\n | " "\n | " nil (point-min) (point-max))
- (mastodon-media--inline-images))
-
-(defun mastodon-tl--more-json (timeline id)
- "Return JSON for TIMELINE before ID."
- (let ((url (mastodon-http--api (concat "timelines/"
- timeline
- "?max_id="
- (number-to-string id)))))
- (mastodon-http--get-json url)))
-
-;; TODO
-;; Look into the JSON returned here by Local
-(defun mastodon-tl--updated-json (timeline id)
- "Return JSON for TIMELINE since ID."
- (let ((url (mastodon-http--api (concat "timelines/"
- timeline
- "?since_id="
- (number-to-string id)))))
- (mastodon-http--get-json url)))
-
-(defun mastodon-tl--property (prop &optional backward)
- "Get property PROP for toot at point.
-
-Move forward (down) the timeline unless BACKWARD is non-nil."
- (or (get-text-property (point) prop)
- (progn
- (if backward
- (mastodon-tl--goto-prev-toot)
- (mastodon-tl--goto-next-toot))
- (get-text-property (point) prop))))
-
-(defun mastodon-tl--newest-id ()
- "Return toot-id from the top of the buffer."
- (goto-char (point-min))
- (mastodon-tl--property 'toot-id))
-
-(defun mastodon-tl--oldest-id ()
- "Return toot-id from the bottom of the buffer."
- (progn
- (goto-char (point-max))
- (mastodon-tl--property 'toot-id t)))
-
-(defun mastodon-tl--thread ()
- "Open thread buffer for toot under `point'."
- (interactive)
- (let* ((id (number-to-string (mastodon-tl--property 'toot-id)))
- (url (mastodon-http--api (format "statuses/%s/context" id)))
- (buffer (format "*mastodon-thread-%s*" id))
- (toot (mastodon-tl--property 'toot-json))
- (context (mastodon-http--get-json url)))
- (with-output-to-temp-buffer buffer
- (switch-to-buffer buffer)
- (mastodon-tl--timeline (vconcat
- (cdr (assoc 'ancestors context))
- `(,toot)
- (cdr (assoc 'descendants context)))))
- (mastodon-mode)))
-
-(defun mastodon-tl--more ()
- "Append older toots to timeline."
- (interactive)
- (let* ((point-before (point))
- (tl (mastodon-tl--timeline-name))
- (id (mastodon-tl--oldest-id))
- (json (mastodon-tl--more-json tl id)))
- (when json
- (with-current-buffer (current-buffer)
- (let ((inhibit-read-only t))
- (goto-char (point-max))
-<<<<<<< HEAD
- (mastodon-tl--timeline json))))))
-=======
- (mastodon-tl--timeline json)
- (goto-char point-before)
- (mastodon-tl--goto-next-toot))))))
->>>>>>> 3cb5a6a9be2811b63a254d1c00b7ba30460d7629
-
-(defun mastodon-tl--update ()
- "Update timeline with new toots."
- (interactive)
- (let* ((tl (mastodon-tl--timeline-name))
- (id (mastodon-tl--newest-id))
- (json (mastodon-tl--updated-json tl id)))
- (when json
- (with-current-buffer (current-buffer)
- (let ((inhibit-read-only t))
- (goto-char (point-min))
- (mastodon-tl--timeline json))))))
-
-(defun mastodon-tl--get (timeline)
- "Display TIMELINE in buffer."
- (let* ((url (mastodon-http--api (concat "timelines/" timeline)))
- (buffer (concat "*mastodon-" timeline "*"))
- (json (mastodon-http--get-json url)))
- (with-output-to-temp-buffer buffer
- (switch-to-buffer buffer)
- (mastodon-tl--timeline json))
- (mastodon-mode)))
-
-(provide 'mastodon-tl)
-;;; mastodon-tl.el ends here