diff options
| author | John Conway <john.a.conway@gmail.com> | 2019-05-17 15:49:32 +0100 |
|---|---|---|
| committer | John Conway <john.a.conway@gmail.com> | 2019-05-17 15:49:32 +0100 |
| commit | e80352a021ca0b0ebc330ca530b31eb2197949fd (patch) | |
| tree | f087ff29340e8d727e358bfb2c7a2cdb0403d4e0 /src/feednim/jsonfeed.nim | |
| parent | e9b43e1677abb3ecc5be8b4f995db09d77dd76a8 (diff) | |
| download | feed-nim-e80352a021ca0b0ebc330ca530b31eb2197949fd.tar.gz feed-nim-e80352a021ca0b0ebc330ca530b31eb2197949fd.zip | |
Stupid git case (in)sensetivity
Diffstat (limited to 'src/feednim/jsonfeed.nim')
| -rw-r--r-- | src/feednim/jsonfeed.nim | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/src/feednim/jsonfeed.nim b/src/feednim/jsonfeed.nim deleted file mode 100644 index e523778..0000000 --- a/src/feednim/jsonfeed.nim +++ /dev/null @@ -1,133 +0,0 @@ -# Nim JSONFeed Syndication module - -# Written by John Conway -# Released under the MIT open source license. - -import strutils -import sequtils -import json -import streams -import sugar - -type - JSONFeed* = ref object of RootObj - author*: JSONFeedAuthor - version*: string - title*: string - home_page_url*: string - feed_url*: string - description*: string - next_url*: string - icon*: string - favicon*: string - expired*: bool - hubs*: seq[JSONFeedHub] - items*: seq[JSONFeedItem] - - JSONFeedHub* = object - hubType: string - url: string - - JSONFeedAuthor* = object - name*: string - url*: string - avatar*: string - - JSONFeedItem* = object - author*: JSONFeedAuthor - id*: string - url*: string - external_url*: string - title*: string - content_html*: string - content_text*: string - summary*: string - image*: string - banner_image*: string - date_published*: string - date_modified*: string - tags*: seq[string] - attachments*: seq[JSONFeedAttachment] - - JSONFeedAttachment* = object - url*: string - mime_type*: string - title*: string - size_in_bytes*: int - duration_in_seconds*: int - -proc parseItem( node: JsonNode) : JSONFeedItem = - var item: JSONFeedItem = JSONFeedItem() - - if node.getOrDefault( "author" ) != nil: - let author = node["author"] - item.author.name = getStr( author.getOrDefault "name" ) - item.author.url = getStr( author.getOrDefault "url" ) - item.author.avatar = getStr( author.getOrDefault "avatar" ) - - item.id = getStr( node.getOrDefault "id" ) - item.url = getStr( node.getOrDefault "url" ) - item.external_url = getStr( node.getOrDefault "external_url" ) - item.title = getStr( node.getOrDefault "title" ) - item.content_html = getStr( node.getOrDefault "content_html" ) - item.content_text = getStr( node.getOrDefault "content_text" ) - item.summary = getStr( node.getOrDefault "summary" ) - item.image = getStr( node.getOrDefault "image" ) - item.banner_image = getStr( node.getOrDefault "banner_image" ) - item.date_published = getStr( node.getOrDefault "date_published" ) - item.date_modified = getStr( node.getOrDefault "date_modified" ) - - if node.getOrDefault( "tags" ) != nil: - for tag in node["tags"]: - item.tags.add( tag.to(string) ) - - if node.getOrDefault( "attachments" ) != nil: - for jattach in node["attachments"]: - var attachment: JSONFeedAttachment = JSONFeedAttachment() - attachment.url = getStr( jattach.getOrDefault "url" ) - attachment.mime_type = getStr( jattach.getOrDefault "mime_type" ) - attachment.title = getStr( jattach.getOrDefault "title" ) - attachment.size_in_bytes = getInt( jattach.getOrDefault "size_in_bytes" ) - attachment.duration_in_seconds = getInt( jattach.getOrDefault "duration_in_seconds" ) - - item.attachments.add( attachment ) - - return item - -proc parseJSONFeed*(data: string): JSONFeed = - let node = data.parseJson() - var feed: JSONFeed = JSONFeed() - - if node.getOrDefault( "author" ) != nil: - let author = node["author"] - feed.author.name = getStr( author.getOrDefault "name" ) - feed.author.url = getStr( author.getOrDefault "url" ) - feed.author.avatar = getStr( author.getOrDefault "avatar" ) - - feed.version = getStr( node.getOrDefault "version" ) - feed.title = getStr( node.getOrDefault "title" ) - feed.home_page_url = getStr( node.getOrDefault "home_page_url" ) - feed.feed_url = getStr( node.getOrDefault "feed_url" ) - feed.description = getStr( node.getOrDefault "description" ) # What is this? - feed.next_url = getStr( node.getOrDefault "next_url" ) - feed.icon = getStr( node.getOrDefault "icon" ) - feed.favicon = getStr( node.getOrDefault "favicon" ) - - if node.getOrDefault( "expired" ) != nil: - feed.expired = node["expired"].getBool() - - if node.getOrDefault( "hubs" ) != nil: - for jhub in node["hubs"]: - var hub: JSONFeedHub = JSONFeedHub() - hub.hubType = getStr( jhub.getOrDefault "url" ) - hub.url = getStr( jhub.getOrDefault "mime_type" ) - - feed.hubs.add( hub ) - - feed.items = @[] - if node.getOrDefault( "items" ) != nil: - for item in node["items"]: - feed.items.add item.parseItem() - - - return feed
\ No newline at end of file |
