| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- <?php
- $username = Minz_Session::param('currentUser', '_');
- $options = 0;
- if (version_compare(PHP_VERSION, '5.4.0') >= 0) {
- $options = JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE;
- }
- $articles = array(
- 'id' => 'user/' . str_replace('/', '', $username) . '/state/org.freshrss/' . $this->type,
- 'title' => $this->list_title,
- 'author' => $username,
- 'items' => array(),
- );
- echo rtrim(json_encode($articles, $options), " ]}\n\r\t"), "\n";
- $first = true;
- if (empty($this->entryIdsTagNames)) {
- $this->entryIdsTagNames = array();
- }
- foreach ($this->entriesRaw as $entryRaw) {
- if ($entryRaw == null) {
- continue;
- }
- $entry = FreshRSS_EntryDAO::daoToEntry($entryRaw);
- if (!isset($this->feed)) {
- $feed = FreshRSS_CategoryDAO::findFeed($this->categories, $entry->feed());
- if ($feed === null) {
- $feed = $entry->feed(true);
- }
- } else {
- $feed = $this->feed;
- }
- $article = array(
- 'id' => $entry->guid(),
- 'timestampUsec' => '' . $entry->id(),
- 'categories' => array_values($entry->tags()),
- 'title' => $entry->title(),
- 'author' => $entry->authors(true),
- 'published' => $entry->date(true),
- 'updated' => $entry->date(true),
- 'alternate' => array(array(
- 'href' => htmlspecialchars_decode($entry->link(), ENT_QUOTES),
- 'type' => 'text/html',
- )),
- 'content' => array(
- 'content' => $entry->content(),
- ),
- 'origin' => array(
- 'streamId' => $feed == null ? '' : $feed->id(),
- 'title' => $feed == null ? '' : $feed->name(),
- 'htmlUrl' => $feed == null ? '' : $feed->website(),
- 'feedUrl' => $feed == null ? '' : $feed->url(),
- )
- );
- $article['categories'][] = $entry->isRead() ? 'user/-/state/com.google/read' : 'user/-/state/com.google/unread';
- if ($entry->isFavorite()) {
- $article['categories'][] = 'user/-/state/com.google/starred';
- }
- $tagNames = isset($this->entryIdsTagNames['e_' . $entry->id()]) ? $this->entryIdsTagNames['e_' . $entry->id()] : array();
- foreach ($tagNames as $tagName) {
- $article['categories'][] = 'user/-/label/' . $tagName;
- }
- $line = json_encode($article, $options);
- if ($line != '') {
- if ($first) {
- $first = false;
- } else {
- echo ",\n";
- }
- echo $line;
- }
- }
- echo "\n]}\n";
|