Files
FreshRSS/app/Models/ViewStats.php
Alexandre Alapetite 39cc1c11ec New feature: shareable user query (#6052)
* New feature: shareable user query
Share the output of a user query by RSS / HTML / OPML with other people through unique URLs.
Replaces the global admin token, which was the only option (but unsafe) to share RSS outputs with other people.
Also add a new HTML output for people without an RSS reader.

fix https://github.com/FreshRSS/FreshRSS/issues/3066#issuecomment-648977890
fix https://github.com/FreshRSS/FreshRSS/issues/3178#issuecomment-769435504

* Remove unused method

* Fix token saving

* Implement HTML view

* Update i18n for master token

* Revert i18n get_favorite

* Fix missing i18n for user queries from before this PR

* Remove irrelevant tests

* Add link to RSS version

* Fix getGet

* Fix getState

* Fix getSearch

* Alternative getSearch

* Default getOrder

* Explicit default state

* Fix test

* Add OPML sharing

* Remove many redundant SQL queries from original implementation of user queries

* Fix article tags

* Use default user settings

* Prepare public search

* Fixes

* Allow user search on article tags

* Implement user search

* Revert filter bug

* Revert wrong SQL left outer join change

* Implement checkboxes

* Safe check of OPML

* Fix label

* Remove RSS button to favour new sharing method
That sharing button was using a global admin token

* First version of HTTP 304

* Disallow some recusrivity
fix https://github.com/FreshRSS/FreshRSS/issues/6086

* Draft of nav

* Minor httpConditional

* Add support for offset for pagination

* Fix offset pagination

* Fix explicit order ASC

* Add documentation

* Help links i18n

* Note about deprecated master token

* Typo

* Doc about format
2024-02-26 09:01:03 +01:00

49 lines
1.6 KiB
PHP

<?php
declare(strict_types=1);
final class FreshRSS_ViewStats extends FreshRSS_View {
/** @var array<int,FreshRSS_Category> */
public array $categories;
public FreshRSS_Feed $feed;
/** @var array<int,FreshRSS_Feed> */
public array $feeds;
public bool $displaySlider = false;
public float $average;
public float $averageDayOfWeek;
public float $averageHour;
public float $averageMonth;
/** @var array<string> */
public array $days;
/** @var array<string,array<int,int|string>> */
public array $entryByCategory;
/** @var array<int,int> */
public array $entryCount;
/** @var array<string,array<int,int|string>> */
public array $feedByCategory;
/** @var array<int, string> */
public array $hours24Labels;
/** @var array<string,array<int,array<string,int|string>>> */
public array $idleFeeds;
/** @var array<int,string> */
public array $last30DaysLabel;
/** @var array<int,string> */
public array $last30DaysLabels;
/** @var array<string,string> */
public array $months;
/** @var array{'total':int,'count_unreads':int,'count_reads':int,'count_favorites':int}|false */
public $repartition;
/** @var array{'main_stream':array{'total':int,'count_unreads':int,'count_reads':int,'count_favorites':int}|false,'all_feeds':array{'total':int,'count_unreads':int,'count_reads':int,'count_favorites':int}|false} */
public array $repartitions;
/** @var array<int,int> */
public array $repartitionDayOfWeek;
/** @var array<string,int>|array<int,int> */
public array $repartitionHour;
/** @var array<int,int> */
public array $repartitionMonth;
/** @var array<array{'id':int,'name':string,'category':string,'count':int}> */
public array $topFeed;
}