Commit Graph

116 Commits

Author SHA1 Message Date
Marien Fressinaud
f56dd400b7 Add base-theme in p/themes
This base theme is not visible by default (no name). You can use it
to create new theme.
Fix https://github.com/marienfressinaud/FreshRSS/issues/533 (comment)
2014-07-10 17:42:42 +02:00
Alexandre Alapetite
6c83264f83 SQL: MySQL speed optimisation
Would be nice to test with other versions of MySQL too.

Comparison before/after:

mysql> EXPLAIN SELECT e.id, e.guid, e.title, e.author,
UNCOMPRESS(content_bin) AS content, e.link, e.date, e.is_read,
e.is_favorite, e.id_feed, e.tags FROM `freshrss_alex_entry` e INNER JOIN
(SELECT e1.id FROM `freshrss_alex_entry` e1 INNER JOIN
`freshrss_alex_feed` f ON e1.id_feed=f.id WHERE f.priority > 0 AND
(e1.id >= 1381615200000000 OR e1.is_read=0 OR e1.is_favorite=1 OR
(f.keep_history <> 0)) ORDER BY e1.id DESC LIMIT 31) e2 ON e2.id=e.id
ORDER BY e.id DESC;

+----+-------------+------------+--------+-------------------------------------+----------+---------+---------------+------+----------------------------------------------+
| id | select_type | table      | type   | possible_keys
| key      | key_len | ref           | rows | Extra
|

+----+-------------+------------+--------+-------------------------------------+----------+---------+---------------+------+----------------------------------------------+
|  1 | PRIMARY     | <derived2> | ALL    | NULL
| NULL     | NULL    | NULL          |   31 | Using temporary; Using
filesort              |
|  1 | PRIMARY     | e          | eq_ref | PRIMARY
| PRIMARY  | 8       | e2.id         |    1 |
|
|  2 | DERIVED     | f          | range  | PRIMARY,priority,keep_history
| priority | 1       | NULL          |  137 | Using where; Using
temporary; Using filesort |
|  2 | DERIVED     | e1         | ref    |
PRIMARY,id_feed,is_favorite,is_read | id_feed  | 2       | freshrss.f.id
|  452 | Using where                                  |

+----+-------------+------------+--------+-------------------------------------+----------+---------+---------------+------+----------------------------------------------+
4 rows in set (3.50 sec)

mysql> EXPLAIN SELECT e.id, e.guid, e.title, e.author,
UNCOMPRESS(content_bin) AS content, e.link, e.date, e.is_read,
e.is_favorite, e.id_feed, e.tags FROM `freshrss_alex_entry` e INNER JOIN
(SELECT e1.id FROM `freshrss_alex_entry` e1 INNER JOIN
`freshrss_alex_feed` f ON e1.id_feed=f.id WHERE f.priority > 0 AND e1.id
<=9000000000000000 AND (e1.id >= 1381615200000000 OR e1.is_read=0 OR
e1.is_favorite=1 OR (f.keep_history <> 0)) ORDER BY e1.id DESC LIMIT 31)
e2 ON e2.id=e.id ORDER BY e.id DESC;

+----+-------------+------------+--------+-------------------------------------+---------+---------+---------------------+-------+---------------------------------+
| id | select_type | table      | type   | possible_keys
| key     | key_len | ref                 | rows  | Extra
|

+----+-------------+------------+--------+-------------------------------------+---------+---------+---------------------+-------+---------------------------------+
|  1 | PRIMARY     | <derived2> | ALL    | NULL
| NULL    | NULL    | NULL                |    31 | Using temporary;
Using filesort |
|  1 | PRIMARY     | e          | eq_ref | PRIMARY
| PRIMARY | 8       | e2.id               |     1 |
|
|  2 | DERIVED     | e1         | range  |
PRIMARY,id_feed,is_favorite,is_read | PRIMARY | 8       | NULL
| 70084 | Using where                     |
|  2 | DERIVED     | f          | eq_ref | PRIMARY,priority,keep_history
| PRIMARY | 2       | freshrss.e1.id_feed |     1 | Using where
|

+----+-------------+------------+--------+-------------------------------------+---------+---------+---------------------+-------+---------------------------------+
4 rows in set (0.01 sec)
2014-07-10 15:49:51 +02:00
Marien Fressinaud
c1728fe0d7 Coding style header.phtml + possibility to change logo
See https://github.com/marienfressinaud/FreshRSS/issues/532
2014-07-09 19:39:21 +02:00
Alexandre Alapetite
0f842c1aea SQL: removed superfluous transactions to avoid some dead locks 2014-07-08 14:14:02 +02:00
Alexis Degrugillier
21d8c03ac9 Add a configuration parameter
Add a parameter to choose wether or not the user want to display a confirmation dialog when clicking on "mark all as read" actions.
2014-07-07 19:34:47 -04:00
Alexandre Alapetite
e358c5e2e1 SQL: SQLite syntax uniformisation
805c91da98 (diff-101042bec0ff3ac9d691b2e77fca3313R7)
2014-07-07 21:12:13 +02:00
Alexandre Alapetite
439a0e2991 SQL: improved performance for adding new articles 2014-07-07 18:25:48 +02:00
Alexandre Alapetite
3bbd0e446f Prepare statistics for SQLite
Temporarily disable 30-day statistics for SQLite
https://github.com/marienfressinaud/FreshRSS/issues/100
https://github.com/marienfressinaud/FreshRSS/issues/90
2014-07-06 11:54:00 +02:00
Alexandre Alapetite
3d3b33ea2e Bug global TTL
https://github.com/marienfressinaud/FreshRSS/issues/250
2014-07-06 10:12:37 +02:00
Alexandre Alapetite
bc8eb560af Add TTL to control feed freshness
https://github.com/marienfressinaud/FreshRSS/issues/250
2014-07-06 00:09:31 +02:00
Alexandre Alapetite
b48dc25963 Merge pull request #516 from aledeg/stats
Refactor statistics
2014-07-05 18:43:35 +02:00
Alexandre Alapetite
b8e6a3b5b2 Bug feed->hash for 301 redirections, favicons 2014-07-05 11:17:23 +02:00
Alexandre Alapetite
805c91da98 Add support for SQLite
https://github.com/marienfressinaud/FreshRSS/issues/100
Warning: MySQL has been changed too, so bugs may have been introduced
2014-07-05 01:52:41 +02:00
Alexandre Alapetite
b34f59e85a Preparation #3 for SQLite
https://github.com/marienfressinaud/FreshRSS/issues/100
2014-07-03 22:48:29 +02:00
Alexandre Alapetite
2501bb337e Preparation #2 for SQLite
https://github.com/marienfressinaud/FreshRSS/issues/100
2014-07-03 22:11:25 +02:00
Alexandre Alapetite
d6f4141086 Preparation for SQLite
https://github.com/marienfressinaud/FreshRSS/issues/100
2014-07-03 21:26:30 +02:00
Alexandre Alapetite
af9e5a408a Small correction favicon
Ensure to try the website favicon before trying the feed URL favicon
(which might be on e.g. FeedBurner with an anonymous favicon).
2014-07-03 01:28:56 +02:00
Alexandre Alapetite
3275018238 Cleaning some hash functions 2014-07-03 00:43:02 +02:00
Alexandre Alapetite
63c9c47a76 SimplePie HTTP 301 Moved Permanently
Add support for HTTP 301 Moved Permanently in SimplePie
FreshRSS will automatically update the address of a feed, only in this
case.
2014-07-01 23:30:01 +02:00
Alexis Degrugillier
60fe99344e Refactor and formatting 2014-06-15 12:13:33 -04:00
Alexis Degrugillier
181fcd9889 Refactor statistics
I made a new controller to handle statistics. The old statistics have been moved in that controller and a new action has been added to display idle feeds. I also added a menu in the left panel to navigate between the statistics pages.
See #90
2014-06-15 12:05:21 -04:00
Marien Fressinaud
09602acc5f Add two wrappers (_t() and _i())
- _t() is a wrapper for Minz_Translate::t()
- Improve coding style of Translate.php
- _i() is a wrapper for FreshRSS::icon()
- queries.phtml shows how they work
- It is a lot easier to read files with these functions :)
2014-06-15 17:49:23 +02:00
Marien Fressinaud
a7e8332809 Improve system of queries
- Coding style
- More checks server side
- Default query name is "Query n°X"
- List of queries is moved into nav_menu, in a dropdown
- Better system to remove fields in JS (to a.remove elements, give an
  attibute data-remove="id_to_remove")
- Fix a bug in lib/Mine/Request.php (htmlspecialchars_utf8 can be applied on
  arrays now)
- Few theme improvements
- Add an element .no-mobile to apply to elements which should not appear on
  mobiles

See https://github.com/marienfressinaud/FreshRSS/pull/498
2014-06-14 09:04:31 +02:00
Marien Fressinaud
2b8dc66634 Merge branch 'user-queries' of https://github.com/aledeg/FreshRSS into aledeg-user-queries
Conflicts:
	app/layout/nav_menu.phtml
2014-06-13 20:20:43 +02:00
Marien Fressinaud
b8f53b0525 Add an option to choose content width
- 4 options: thin, medium, large and no limit
- Thin is by default
2014-06-05 22:26:18 +02:00
Marien Fressinaud
e70933dfeb Update links to change view
- Dropdown menu is transformed into stick buttons
- 3 new icons (view-normal, view-global, view-reader)
- Link to access RSS is now next to these buttons (should we kept it
  here?)
2014-06-05 21:25:21 +02:00
Alexandre Alapetite
d1b31b1a61 Search order of filters
For now, process them in the same order as specified by the user
Specifying for instance `date:` first will be much faster than
specifying a free text word first.
https://github.com/marienfressinaud/FreshRSS/issues/511
2014-06-01 15:23:30 +02:00
Alexandre Alapetite
ecac55d3d3 New search system, including date: and pubdate: and combination
Now also accepts combination of #tag and intitle: and inurl: and author:
and the new date: and pubdate:
https://github.com/marienfressinaud/FreshRSS/issues/511
Each search prefix stop at the first space (we should add a possibility
to have quotes for multiple words)
So if you want two words in title, write "intitle:word1 intitle:word2"

Examples of dates:
date:2014
date:2014-02/2014-04 or date:201402/201404
date:P1W for the last week
2014-06-01 14:40:38 +02:00
Alexandre Alapetite
c3178a4f89 Add video control for podcasts
https://github.com/marienfressinaud/FreshRSS/issues/504
2014-05-14 09:07:30 +02:00
Alexandre Alapetite
7f1c305c86 Add audio control for podcasts
https://github.com/marienfressinaud/FreshRSS/issues/504
2014-05-13 22:30:24 +02:00
Alexis Degrugillier
8521c876d4 Add user queries
It's an intermediary step to remove the favorite button.
I add a button to store the current query as a favorite query. It redirects automatically to the configuration page where it is possible to name and remove user queries.
To make the queries more straigtforward, I removed the default behavior when searching for a string. This way, when we search for a string, the filter is not defaulted to all articles.
2014-05-04 17:23:53 -04:00
Alexis Degrugillier
f820f428ef Add a shortcut to access the search field 2014-04-27 11:00:25 -04:00
Alexandre Alapetite
f25783ef5d Minor syntax changes for: New toggle buttons to filter articles
See
http://programmers.stackexchange.com/questions/23852/bitwise-or-vs-adding-flags
https://github.com/marienfressinaud/FreshRSS/pull/486
https://github.com/marienfressinaud/FreshRSS/issues/376
2014-04-15 12:16:31 +02:00
Alexis Degrugillier
3a736e902c Move state constants from Configuration to Entry 2014-04-13 08:16:43 -04:00
Alexis Degrugillier
1e032608a6 Change rss icon fallback value 2014-04-13 07:39:33 -04:00
Alexis Degrugillier
cd87e2000a Revert deletion of the favorite actions 2014-04-13 07:35:17 -04:00
Alexis Degrugillier
86066b1659 Add a new status for 'ALL'
I made the conversion in every file I can think of.
It should not have any reference to the string 'all' for the state context
2014-04-13 07:28:41 -04:00
Alexis Degrugillier
d25afa9def Extract RSS feed from menu
The RSS action has now its own button. I also reorganized the button display order to be more natural.

I did not find an appropriate Unicode replacement for the Rss icon.
2014-04-12 22:46:35 -04:00
Alexis Degrugillier
3e665bcf9a Delete favorite button
I extract drop-down menu actions to make them as button action in the page header.
I removed the favorite button on the category list because it is a duplicate from the button action.
Now button action act as filters and you can combine them.

It is a test to see if we can keep it like that. There is still work to do to extract other actions from the drop-down list.
I did not want to change everything if we don't keep it.

See #376 and #277
2014-04-12 11:51:44 -04:00
Marien Fressinaud
779afe9c4e Import of articles is implemented!
- Remove massiveImportAction and addCategories from FeedController
- Fix typo for some methods (camelCase)
- addCategoryObject and addFeedObject return id if corresponding object already
  exists in DB
- introduce addEntryObject. Return -1 if Entry already exist (in order to keep
  quite good performances)
- Complete importArticles method

Need some more tests + better performance
2014-03-30 14:28:13 +02:00
Marien Fressinaud
9ea3819402 Better OPML import / export
- use a new OPML library (https://github.com/marienfressinaud/lib_opml)
- import has been completely rewritten (far better!)
- introduce addFeedObject and addCategoryObject (in DAO for the moment).
  Permit to add easily feeds and categories (check if they already exist in DB)
- introduce html_chars_utf8 (wrap htmlspecialchars for UTF-8)
2014-03-29 20:18:57 +01:00
Alexandre Alapetite
5bf511c00f Bug feed name with special chars
https://github.com/marienfressinaud/FreshRSS/issues/462
2014-03-16 21:15:28 +01:00
Alexis Degrugillier
1af723ca68 Add a button to reveal/hide password
I add a button on the configure user interface to reveal the password for 2 seconds and hide it after that period.

See #442

I am not sure if the fallback unicode text for the icon is correct. I can not make it work.
2014-03-15 07:20:42 -04:00
Alexandre Alapetite
670ee57b62 Interface to enable/disable API and unsafe automatic login
https://github.com/marienfressinaud/FreshRSS/issues/13
https://github.com/marienfressinaud/FreshRSS/issues/440
2014-03-08 20:16:10 +01:00
Alexis Degrugillier
339a0dd49c Change test on URL parameter 2014-03-08 09:23:59 -05:00
Alexis Degrugillier
b0a3610db7 Change test 2014-03-08 09:18:07 -05:00
Alexis Degrugillier
e9eca6aff6 Sharing optimization
Change the storage and display of sharings to improve the time needed to generate the page.
Instead of looking for a default value when displaying the sharing links, they are added
during the configuration.
2014-03-08 09:18:06 -05:00
Alexandre Alapetite
fc6769c1b1 API: Add continuation mode
https://github.com/marienfressinaud/FreshRSS/issues/443
Needed for e.g. EasyRSS
2014-03-03 21:25:14 +01:00
Alexis Degrugillier
80d576dac7 Add a default URL value 2014-03-02 09:24:02 -05:00
Alexandre Alapetite
00774f5a0b API : SQL optimisation WHERE ... IN, and better compatibility EasyRSS
https://github.com/marienfressinaud/FreshRSS/issues/13
2014-03-02 11:54:52 +01:00