aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG.md
blob: a5af2675f42bea0419dfa19c3a5091fe78a067b7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
Newspipe Changelog
==================

## 9.5.0 (2022-03-31)

### New

- [commands] Added a function which deletes read articles retrieved since more than 60
  days ago;
- [commands] added a command to delete inactive users (number of months given in
  parameter);
- [stats_bp] Added new blueprint for future stats and added a new bar chart in the
  history page.

## Improvements

- improved indexes of the database;
- various improvements to the Web graphical interface;
- improved code style;
- updated Python and JavaScript dependencies;
- various improvements related to the migration to Bootstrap 5.

### Fixes

- [controllers] fixed an issue in the management of bookmark's tags;
- various fixes.


## 9.4.0 (2020-06-08)

### New

- migrated form Flask-Script to the built-in integration of the click command
  line interface of Flask;
- when creating or editing a category it is now possible to assign feeds via a
  select multiple field.

### Improvements

- improved list of feeds menu. Feeds are now sorted per categories (sorted per
  number of unread articles). And the feed icons are displayed;
- simplify loading of the configuration file;
- speed improvements to the /history page;
- various improvements to the Web user interface and to the crawler.


## 9.3.0 (2020-03-22)

### New

- it is now possible to configure a Content Security Policy.


## 9.2.0 (2020-03-20)

### New

- a Docker configuration file is provided.

### Improvements

- some responsiveness work has been done. The interface is now more usable with
  small devices;
- the search of articles has been improved;
- improved email notification mechanism.

### Fixes

- various minor fixes (mainly bugs introduced on version 9.1.0 after the
  refactoring of the back-end).


## 9.1.0 (2020-03-12)

### Improvements

- the Web graphical interface is now using Bootstrap 4;
- a lot of responsiveness work has been done;
- the back-end code has been refactored and cleaned;
- the configuration and deployment of Newspipe is now a lot easier.


## 9.0 (2020-02-27)

### New

- email address of users are no longer stored in the database. Only a nickname
  and a password are required to create an account;
- deployment is now done with poetry;
- removed a lot bad JavaScript code.

### Improvements

- feeds are now retrieved with requests. feedparser is only used for the
  parsing;
- improvements to the crawler.


## 8.0 (2017-05-24)

### New

- you can now manage your bookmarks with Newspipe;
- a bookmarklet is available in order to quickly bookmark Web pages;
- import of bookmarks from Pinboard (JSON export);
- new logo;

### Improvements

- refactoring and code cleaning;
- improved Heroku auto-deploy functionality.

### Fixes

- crawler: argument of type 'NoneType' is not iterable in html.unescape().


## 7.1.3 (2016-11-14)

### New

- a template for the articles of public feeds has been added;
- the template of the feeds is now also used for users who are not
  authenticated (if the feed is not private);
- tags of articles are now displayed in the UI.

### Improvements

- it is now possible to configure the feeds refresh interval (in minutes) for
  the crawler (even if the crawler is used with cron);
- various improvements to the UI of the public profile page;
- simpler format for the logs when the application is running on Heroku.


## 7.1.2 (2016-11-08)

### New

- the new name of JARR is now Newspipe;
- the user can now add its twitter link through the profile page;
- it is now possible to edit the visibility of a feed (if it should be listed
  in the list of the user's public profile);
- tags of articles are now retrieved in order to use k-means clustering on tags
  (will be faster than on the article's content);
- various improvements to the crawler (test if an article should be updated and
  better use of coroutines).

### Improvements

- improved the layout of the profile page;
- the React.js page now only lists the feeds with unread articles by default;
- improvements for the crawler.

### Removal

- removed the 'refresh_rate' column from the user table;
- removed the export to HTML webzine functionality.


## 7.1.1 (2016-10-04)

### Improvements

- improved the installation script;
- improved the deployment process with Vagrant.

### Fixes

- fixed a bug that occurred when deleting a user who has categories with feeds
  in it;
- fixed a bug that occurred when the user wants to use SQLite.


## 7.1 (2016-09-26)

### New

- public profile page for users (private by default);
- popular page: displays the most popular feeds recently added by the users;
- new logo.

### Improvements

- the profile edition page has been improved;
- the generation of the tag cloud has been improved (faster).

### Fixes

- fixed a bug when loading the list of stop words.


## 7.0 (2016-04-07)

### New

- redoing entirely the home page with react;
- implementing category;
- the classic crawler is now taking into account updated articles from feeds;
- support of HTTP proxy has been removed;
- article URL resolving has been removed (wasn't used);
- improvement of the management of users in the dashboard;
- account confirmation is now achieved with a token that expires in a specified
  time.

### Improvements

- Code re-arangement: move all code to /src/


## 6.7 (2015-07-21)

### New

- a filter mechanism for feeds has been added (PR #14);
- icon of feeds is now an url retrieved from the feed or the site link (PR #15).

### Improvements

- improvements for the bookmarklet (PR #16 and PR #18);
- performance improvements (display of the /feed page);
- enhancements for the two crawlers;
- enhancements of the UI (PR #14);
- misc changes to the models and controllers.


## 6.6 (2015-06-02)

### New

- it is now possible to sort the list of articles by feed title or article title;
- added base unittests.

### Improvements

- fixed some minor bugs;
- improved the asyncio crawler;
- automatically use the good Python executable for the asyncio crawler;
- improved controllers (enforcing better use of user_id);
- the search is now case insensitive.


## 6.5.5 (2015-04-22)

- The full text search powered by Whoosh has been removed.


## 6.5.4 (2015-04-16)

    This release introduces a new config module and a new search functionality.
    The result of a search is integrated in the main page.


## 6.5.3 (2015-04-14)

    The fetch call is now dependent to the selected crawling method.


## 6.5.2 (2015-04-14)

    The look and feel has been globally improved.
    It is now possible to add a new feed from any page via a dropdown menu.


## 6.5.1 (2015-04-08)

### Improvements

- improvements on the controllers;
- the minimum error count is now specified in the configuration file.


## 6.5 (2015-04-07)

### Improvements

- new CSS;
- improved installation script;
- it is now possible to delete all duplicate articles with one HTTP delete request.


## 6.4 (2015-03-17)

### New
- a new page 'history' to explore your database of articles.

### Changes

- updated documentation;
- minor improvements.

### Fixes

- changed the type of the column 'last_modified' to string.


## 6.3 (2015-03-08)

### New

- a new architecture with base for controllers;
- new, more complete RESTful API;
- a crawler handling errors and cache control;
- the new crawler takes advantage of the RESTful API (can be run on the client
  side).


## 6.2 (2015-02-26)

- The system of email notifications for new articles has been removed. This
  feature was hardly used.


## 6.1 (2015-02-23)

### Improvements

- articles are now identified with the id provided by the RSS/ATOM feed.
- Prevent BeautifulSoup4 from adding extra '<html><body>' tags to the soup with
  the 'lxml' parser.
- Indexation is now used with the new crawler.
- The documentation has been updated.


## 6.0 (2015-02-08)

### New

- pyAggr3g470r is now working with Python 3.4. Tested on Heroku with
  Python 3.4.2.

### Improvements

- The feed crawler uses the PEP 3156 (asyncio). The action buttons are now on
  the left. It is easier to mark an article as read.


## 5.7.0 (2014-11-20)

### Improvements

- major improvements of the email notifications system;
- Notifications are now sent through Postmark (for example for Heroku) or a
  standard SMTP server.

### Fixes

- activation key was too long for the database column.


## 5.6.6 (2014-09-24)

### Improvements

Significant performance improvement for the views /favorites and /unread.
The performance problem has been introduced with the release 5.6.5.


## 5.6.5 (2014-09-15)

This release fixes a major bug introduced with the version 0.9.7 of SQLAlchemy
(conflicts between persistent ant transcient SQLAlchemy objects).


## 5.6.4 (2014-09-12)

    Translations have been updated.
    Gravatar extension has been removed.
    Minor fix.


## 5.6.3 (2014-08-27)

### News

- It is now possible to delete articles older than a given number of weeks.
  This can be done via the management page;
- A new environment variable enables to activate or deactivate the
  self-registration.

### Changes

- translations were updated;
- improved deployment instructions in the README.


## 5.6.2 (2014-08-10)

### New

- pyAggr3g470r can be deployed with the Heroku auto deploy button.

### Improvements

- Articles are automatically retrieved after the import of an OPML file;
- When displaying all articles (unread + read), titles of unread articles
  are emphasized in bold;
- A new tab is opened when clicking on the title of an article.


## 5.6.1 (2014-07-13)

    Performance improvements: faster database insertion of articles by
    the crawler and loading of the management page.
    Minor bug fixes.


## 5.6 (2014-07-05)

    pyAggr3g470r has now a RESTful JSON API which enables to manage Feed and
    Article objects. The API is documented in the README file.
    The main page is using a subset of this API with jQuery HTTP requests.


## 5.5 (2014-06-14)

    This release introduces a redesigned homepage which loads much faster and
    is easier to read. pyAggr3g470r can now be run by Apache.
    Adding a feed no longer requires a title and a site link.


## 5.4 (2014-05-28)

    This version makes it possible for a user to export all of their feeds and
    articles as a JSON file for later restoration.


## 5.3 (2014-05-23)

    This release introduces some UI improvements, especially for the home page.


## 5.2 (2014-05-16)

    This release adds minor bug fixes and UI improvements.


## 5.1 (2014-05-13)

    When deployed on Heroku, the platform now uses the Postmark service to
    send account confirmation emails to users. It is no longer required to
    enter a first name and a last name to create an account.


## 5.0 (2014-05-04)

    pyAggr3g470r is now translated into English and French. Improvements
    concerning the news retriever and the Whoosh search functionality have
    been made. The user can now export all articles in JSON format.
    The user of the platform now has the possibility to delete his or her
    account.


## 4.9 (2014-04-24)

    This version introduces minor improvements to the Jinja templates and
    bugfixes (relating to the import of OPML files with sub-categories and
    relating to the Whoosh index generation).


## 4.8 (2014-04-13)

    Feeds are now retrieved in a separated process with the Gevent library.
    This offers the best performance on Heroku.


## 4.7 (2014-04-12)

    pyAggr3g470r can now be deployed on Heroku or on a traditional server.
    Moreover, several users can use an instance of pyAggr3g470r. A platform is
    managed by the administrator, a user with specific rights.


## 4.6 (2014-02-09)

    This release introduces the import of OPML files of subscriptions.
    Minor improvements have been made to the templates.


## 4.5 (2014-01-29)

    This release introduces a one step installation process with a simple
    script. Minor improvements to the feedgetter module have been introduced
    (the feed description is now stored in the database). Miscellaneous
    improvements to the Jinja templates. Finally, more configuration options
    are now offered to the user.


## 4.4 (2013-12-27)

    This version introduces some improvements for the feedgetter module
    including automatic retrieval of the URL behind feedproxy.google.com,
    and support for configuring the user agent and proxy. Minor improvements
    were made to the MongoEngine models. Notifications are displayed with
    Flask flash messages.


## 4.3 (2013-12-03)

    With this release, the user is able to update her personal information.
    It is now possible to enable/disable the checking of updates for a feed.
    Some performance improvements and user interface optimizations have been
    done.


## 4.2 (2013-11-10)

    This is the first release of the new version of pyAggr3g470r.
    The code has been rewritten with the Flask microframework and the
    Bootstrap frontend framework.


## 4.1 (2013-08-11)

    HTTP proxy support has been added for the fetching of feeds. This is
    useful, for example, if you are using Privoxy/Tor.


## 4.0 (2013-06-25)

    Searching of articles is now achieved with Whoosh, a fast full-text
    indexing and searching library.


## 3.9 (2013-04-14)

    The code has been tested and ported to Python 3.3.1. Some minor bugs have
    been fixed, with a lot of improvements concerning the Mako templates,
    MongoDB database management, and management of exceptions.


## 3.8 (2013-01-12)

    This release introduces a reworked management page; it is now possible to
    change the username and password via this page.
    Some improvements concerning the HTML export of the database have been
    made. Finally, indexed MongoDB full text searching provides a much faster
    search.


## 3.7 (2012-12-29)

    pyAggr3g470r is now using the Mako template library.
    Performance improvements for the MongoDB database have been made, and some
    minor bugfixes. Stop words (a, of, the, an, for...) are now ignored when
    calculating top words for the generation of the tag cloud.
    A new page indicates the list of inactive feeds (with no new published
    articles since a given number of days).


## 3.6 (2012-11-08)

    pyAggr3g470r is now running with Python 3.2(.3). It uses CherryPy 3.2.2,
    BeautifulSoup4, and feedparser3.Your old MongoDB database can be used
    without any problem.


## 3.5 (2012-10-28)

    Some minor bugfixes and improvements.
    An authentication screen has been added, which is useful if pyAggr3g470r
    is running on an EC2 instance, for example.


## 3.4 (2012-05-01)

    This version introduces some minor improvements and bugfixes.
    All features of pyAggr3g470r are now back (with MongoDB).


## 3.3 (2012-04-16)

    This version introduces minor improvements and a bugfix.
    Publication dates of articles are now stored as a datetime object.
    A bug in the script that converts an SQLite database to a MongoDB database
    is now fixed.
    A little documentation has been added.


## 3.2 (2012-03-20)

    A MongoDB database is now used instead of the SQLite database. This change
    offers a significant performance improvement. The database has been tested
    with more than 30,000 articles, but version 3.2 is still a test version.
    A more stable version will arrive soon.


## 3.1 (2011-11-29)

    A new version of the QR Code module is used. For each article, a QR Code
    is generated based on the content of the article. If the article is too
    long, only the article's URL is encoded in the QR Code. For a given
    string, the algorithm tries the generate as small a QR Code as possible.
    Minor bugs were fixed.


## 3.0 (2011-10-25)

    This release introduces exportation of articles to the HTML format and to
    the PDF format (there is still exportation to ePub).
    The sharing of articles with delicious.com was replaced by pinboard.in.s


## 2.9 (2011-08-26)

    Some minor improvements. A bug with the HTML <code> tag bas been fixed.
    Cleanup was done with Pylint.
    The test database of pyAggr3g470r contains more than 22000 articles,
    and it runs perfectly.


## 2.8 (2011-07-08)

    The feed summary page, which displays general information about a feed,
    now lets you change the feed metadata (feed logo, feed name, and feed URL
    if changed). Moreover, this page displays the activity of a feed and other
    useful information. It is now possible to set a different POD for Diaspora
    in the configuration file and to share an article with Google +1.
    A control file to start or stop pyAggr3g470r has been added.
    From the GUI side, a new transparent CSS tooltip has been introduced in
    order to preview an article.
    Finally, some minor performance improvements and bugfixes were made.


## 2.7 (2011-04-15)

    Minor improvements.
    It is now possible to set a maximum number of articles to be loaded from
    the database for each feed (via the management page).


## 2.6 (2011-03-21)

    This version introduces a new page that displays general information about
    a feed. There are some minor improvements in the Web interface.
    The version of pyAggr3g470r for Python 3 is now fully ready and has been
    tested with Python 3.2.


## 2.5 (2011-01-19)

    A bug when removing a feed from the data base was fixed.
    Minor improvements were made for export of articles and the size of HTML
    forms.


## 2.4 (2010-12-07)

    The GUI uses more HTML 5 features like HTML5 Forms Validation
    (email input, URL input), an HTML5 month+year date picker, and a
    placeholder. From each article it is possible to access the
    following and previous article (and a new main menu with CSS ToolTip).
    Articles can now be exported to the EPUB format. Articles loaded from the
    SQLite base are now stored in memory in a better data structure. With more
    than 10,000 articles, pyAggr3g470r starts in 3 seconds. Finally, email
    notifications are now sent with HTML message content and with an
    alternative plain text version (MIMEMultipart).


## 2.3 (2010-11-15)

    This version introduces HTML5 Forms Validation and a HTML5 month+year date
    picker for the history page, which can be used to search for articles.
    This currently only works with Opera.


## 2.2 (2010-11-03)

    There is now a third way to export articles from the SQLite base.
    There is an export method for the wiki DokuWiki (example in the commit
    message).


## 2.1 (2010-10-25)

    The export of articles to HTML has been updated, with better output.
    There are a number of improvements (the search function, generation of
    tags cloud, display of article content, CSS, bugfixes, etc.).
    There is a new Wiki.


## 2.0 (2010-09-03)

    It is now possible to browse articles by year and month with tag clouds
    (see new screenshots).
    In addition, URL errors are detected before downloading feeds.
    There are some improvements in the user interface.


## 1.9 (2010-09-02)

    The feedgetter module was improved. More details about articles are stored
    in the database when possile. An attempt is made to get the whole article
    (a_feed['entries'][i].content[j].value), and in the event of failure,
    the description/summary is used (a_feed['entries'][i].description).


## 1.8 (2010-08-25)

    It is now easier to install pyAggr3g470r.
    There is no longer any need to set any path in the configuration file.


## 1.7 (2010-07-23)

    This release generates QR codes with URLs of articles, so you can read an
    article later on your smartphone (or share with friends).


## 1.6 (2010-07-08)

    It is now possible to automatically add a feed (with the URL of the site),
    delete an article, delete a feed with all its articles, and to delete all
    articles from the database.
    There are also some nice improvements to performance, tested with more
    than 3000 articles.
    Furthermore, HTML export of all the articles of the database was improved.
    You can also export the articles in raw text. Finally, some minor bugs
    were fixed.


## 1.5 (2010-07-05)

    Now pyAggr3g470r only works with Python 2.7.
    OrderedDict objects are used in order to sort the feeds alphabetically in
    a simple way.


## 1.4 (2010-06-10)

    It is now possible to remove all articles of a given feed from the SQLite
    base via the management page. You can also add a feed just with the URL
    of the Web page. The URL of the feed is obtained by parsing the Web page
    with the module BeautifulSoup.


## 1.3 (2010-05-04)

    All articles stored in the SQLite database can now be exported as HTML or
    raw text via the management page.


## 1.2 (2010-04-29)

    This version introduces a tag cloud with variable word length.
    Some improvements were made to the CSS and a bug was fixed.


## 1.1 (2010-04-15)

    Introduction of a Google Buzz button.
    It is now possible to mark or unmark articles as favorites.


## 1.0 (2010-03-23)

    The database of feeds is monitored with the Python gamin module,
    if present. Otherwise it is done with a classic function.
    You now have the option to be informed of new articles by email. To
    receive these notifications, just click on "Stay tuned" for the
    desired feed(s) at the main page of pyAggr3g470r in the browser.


## 0.9 (2010-02-28)

    TuxDroid tells you when there are unread articles (this module is
    independent in case you don't have a TuxDroid). Moreover, the language of
    articles is detected (thanks to the oice.langdet Python module). This
    allows you to search for articles by language.


## 0.8 (2010-02-24)

    It is now possible to share articles with delicious, Digg, reddit,
    Scoopeo, and Blogmarks.
    The "Management of feeds" page presents information on the database and
    statistics on articles (with a histogram). HTML tags are now skipped for
    the search. Some other improvements were made.


## 0.7 (2010-02-15)

    It is now possible to search for an article, through the titles and
    descriptions.


## 0.6 (2010-02-05)

    Unread articles are now shown in bold. This was implemented using a new
    field in the SQLite database. New tabs for article descriptions are opened
    with the _rel=noreferrer_ option in order to separate processes (useful
    with Chromium). It is now possible to see only unread articles for each feed.


## 0.5 (2010-02-02)

It is now possible to fetch feeds manually by clicking on "Fetch all feeds"
and/or with cron. Better navigation between feeds and improvements to the
SQLite database have been added.


## 0.4 (2010-02-01)

- The main page display only 10 articles by feeds;
- For each feeds a page present the list of all articles. The SQLite base is
  smaller than before (removed hashed value);
- A lot of improvements.


## 0.3 (2010-02-01)

- a new menu was added for faster access to feeds;
- some improvements were made to the CSS.


## 0.2 (2010-01-31)

- Articles are now sorted by date, and it is possible to read just a description
  of an article;
- There are some improvements in the code and SQLite base management.


## 0.1 (2010-01-29)

First release of pyAggr3g470r.
bgstack15