Commit Graph

474 Commits (9eeb6d5e233006a35545917c9c9da95cbc53508a)

Author SHA1 Message Date
Andrew Dolgov 10bdeb4b82 misc generated feed tweaks (fix json content-type, etc) 12 years ago
Andrew Dolgov 1ae948ed08 force text/plain when DevForceUpdate is set 12 years ago
Andrew Dolgov 12f317822d api: use text/json content-type 12 years ago
Andrew Dolgov 2ec1e00e2d add bookmarklets plugin 12 years ago
Andrew Dolgov e938b1de11 rename plugin main class files 12 years ago
Andrew Dolgov 93f53ffe55 help: remove checkboxes 12 years ago
Andrew Dolgov b8cb4d08b3 help cleanup, use dijit dialog 12 years ago
Andrew Dolgov e218c5f56f main ui: action-based hotkey system, add swap_jk plugin 12 years ago
Andrew Dolgov 715a8239ac fix feedEditor not saving 12 years ago
Andrew Dolgov 5d9abb1e11 add plugin storage table to schema; add ability to clear plugin data 12 years ago
Andrew Dolgov d8a1d2a25b add experimental key/value storage for plugins 12 years ago
Andrew Dolgov 0f28f81f89 move authentication modules to plugins/ 12 years ago
Andrew Dolgov 04cdc8023d add IMAP authenticator module (closes #485) 12 years ago
Andrew Dolgov 699daf5856 add several HOOK_PREFS_TAB_SECTION hook points 12 years ago
Andrew Dolgov 7d5e162073 fix dijit checkbox in CDM 12 years ago
Andrew Dolgov 84391d6948 update user editor a bit 12 years ago
Andrew Dolgov f947467aa8 remove fupdpic and related images 12 years ago
Andrew Dolgov c4f5283052 move to dijit checkboxes in headlines/cdm list 12 years ago
Andrew Dolgov c2167866ce move mark/pub/feed icons to svg 12 years ago
Andrew Dolgov 65d1e2501b plugins web list style tweaks 12 years ago
Andrew Dolgov 23be0bd3fb hide example plugins from the admin page 12 years ago
Andrew Dolgov d2a421e3cb more work on user-selectable plugins; properly process system and user plugins 12 years ago
Andrew Dolgov de612e7a38 experimental support for per-user plugins (bump schema) 12 years ago
Andrew Dolgov 55c7f0923e split feedbrowser into a separate file 12 years ago
Andrew Dolgov f16116834e split digest stuff into digest.php 12 years ago
Andrew Dolgov ebff9ef7c6 instances: add fbexport method 12 years ago
Andrew Dolgov 7a866114e1 add -list-plugins option; about sections to plugins 12 years ago
Andrew Dolgov 6c2637d973 move data import/export to a separate plugin 12 years ago
Andrew Dolgov 41b82aa4b9 add HOOK_UPDATE_TASK 12 years ago
Andrew Dolgov 4412b877d0 implement HOOK_FEED_PARSED, add example plugin (refs #424) 12 years ago
Andrew Dolgov 19b3992b78 remove magpie, fix article filter plugins 12 years ago
Andrew Dolgov ac22075182 move digest to a separate plugin 12 years ago
Andrew Dolgov 73f28fe979 add support for registering update.php commands; move rest of the self-updating stuff into updater plugin 12 years ago
Andrew Dolgov 6cbe53c9f5 add instances plugin 12 years ago
Andrew Dolgov 8dcb2b4762 implement plugin routing masks, add example plugin 12 years ago
Andrew Dolgov 5cedb389d2 split self-updater gui to updater/ plugin 12 years ago
Andrew Dolgov 6065f3ad63 add support for plugins in prefs 12 years ago
Andrew Dolgov 5a0e03923f add and check plugin base class 12 years ago
Andrew Dolgov 19c7350770 experimental new plugin system 12 years ago
Andrew Dolgov 61a748f87f fix sharepopup/subscribe public handler actions in single user mode 12 years ago
Andrew Dolgov dd8c289b8f update example reddit filter 12 years ago
Andrew Dolgov cc85704f3c implement experimental article on-import data filters 12 years ago
Andrew Dolgov 87764a50cf implement ttrss_feeds.cache_content 12 years ago
Andrew Dolgov 7b28a98697 several translation fixes, update translations 12 years ago
Andrew Dolgov b77d0c4a12 fix missing commit after OPML import (closes #513) 12 years ago
Andrew Dolgov cc616ea162 opml import: add workaround for broken OPML files using title instead of text (refs #509) 12 years ago
Andrew Dolgov fa2374d805 fix headlines subtoolbar not being inserted for feeds with 0 headlines breaking various JS stuff expecting it 12 years ago
Andrew Dolgov 49b2401e0d savefeedorder: properly process Uncategorized 12 years ago
Andrew Dolgov 72ae3877a3 opml: fix export broken by special characters in category titles 12 years ago
Andrew Dolgov a8c1802512 simplify search dialog 12 years ago
Andrew Dolgov e8438e8fd0 update broken tt-rss.org links 12 years ago
Andrew Dolgov 9a5f5633c0 remove backend/digestSend 12 years ago
Andrew Dolgov fd087799fd tweak opml import/export according to OPML spec 12 years ago
Andrew Dolgov 32532f1c0f improve status reporting for linked feeds 12 years ago
Andrew Dolgov 29064218d0 allow batch setting of article scores 12 years ago
Andrew Dolgov beb6ce2761 allow setting article score manually 12 years ago
Andrew Dolgov 1b4d1a6b44 sharepopup: implement assigning labels while sharing 12 years ago
Andrew Dolgov b24504b121 add ability to auto-assign articles to labels (bump schema) 12 years ago
Andrew Dolgov 92c14e9d53 move article filter functions to rssfuncs.php 12 years ago
Andrew Dolgov 74467907c5 add special link to cancel current search 12 years ago
Andrew Dolgov db9e00e339 api: sanitize article content 12 years ago
Andrew Dolgov b3682750bb Revert "sanitize article content when importing data from feed"
This reverts commit c7fe1b4e9e.

Conflicts:
	include/functions.php
	include/rssfuncs.php
12 years ago
Andrew Dolgov d372d2bbab disable sync feed updates for feeds with cache_images set 12 years ago
Andrew Dolgov 8b299a163e fix ARTICLE_BUTTON_PLUGINS not loaded when string contains spaces 12 years ago
Andrew Dolgov c7fe1b4e9e sanitize article content when importing data from feed 12 years ago
Andrew Dolgov 17525d0127 quickAddFeed: remove oauth notice, mention you can paste site URL 12 years ago
Andrew Dolgov 5d7688fe43 rpc: remove unneeded methods 12 years ago
Andrew Dolgov 09c816cac4 remove unexpanded CDM ajax loading 12 years ago
Andrew Dolgov 9a0e28f4da fix rpc/cdmGetArticle for archived articles 12 years ago
Andrew Dolgov 02195b9d48 fix label row backgrounds only used when cached data is available 12 years ago
Andrew Dolgov f65ede50eb use css3 gradients to color rrows 12 years ago
Andrew Dolgov 30c337cf3d add rrow background color setting by first assigned label 12 years ago
Andrew Dolgov c0c2abbaa7 force refetch feed when clicking update/clicking on same feed in the tree 12 years ago
Andrew Dolgov 56b2a4095b filter dialog: sort rules by reg_exp 12 years ago
Andrew Dolgov 6e577ba157 properly escape comment links 12 years ago
Andrew Dolgov 5c56897349 properly escape article link/PTITLEs (refs #472) 12 years ago
Andrew Dolgov 008ebad928 syndicated feeds: force sort by last_read for published 12 years ago
Andrew Dolgov c719943aa9 fix testing of author filter type 12 years ago
Andrew Dolgov ce5652160e generated feeds: add offset= 12 years ago
Andrew Dolgov 0ef32f48b2 unify child category counter display; remove include_children control 12 years ago
Andrew Dolgov 5ba4ebc65e api: return api_level with login 12 years ago
Andrew Dolgov 759e5132a1 subscribe_to_feed: stop fetching URL multiple times while subscribing, various other speedups 12 years ago
Andrew Dolgov 839b065860 api: remove unneeded stuff, add special header for android httpurlconnection which seems to be retarded 12 years ago
Andrew Dolgov 4864633612 API: support nested categories 12 years ago
Andrew Dolgov b235e09b8d remove truncating of titles in CDM 12 years ago
Andrew Dolgov d1e31c7a74 Revert "only enable OTPHP on php version 5.3+"
This reverts commit 1835f145a8.
12 years ago
Andrew Dolgov d031f69813 Revert "auth internal: fix otp check clause"
This reverts commit 72d0e9b33f.
12 years ago
Andrew Dolgov 6e0ee8336f do not use prefs_feed_search when displaying main UI feedtree 12 years ago
Andrew Dolgov bc6fa2364b move inactiveFeeds and feedsWithErrors to pref-feeds; fix element id collisions 12 years ago
Andrew Dolgov 72d0e9b33f auth internal: fix otp check clause 12 years ago
Andrew Dolgov 1835f145a8 only enable OTPHP on php version 5.3+ 12 years ago
Andrew Dolgov 7ac3f735e1 quickAddFeed: remove OAuth mention 12 years ago
Andrew Dolgov f393dc6fb2 pref-feeds: disable show empty cats when searching 12 years ago
Andrew Dolgov 17c755f048 fix pref-feeds search 12 years ago
Andrew Dolgov 22439dad49 sharepopup look tweaks 12 years ago
Andrew Dolgov dd0a17b07a opml fixes 12 years ago
Andrew Dolgov eeee2ccf74 login form: resize input fields, fix missing error output 12 years ago
Andrew Dolgov 675f198a7c rework login form 12 years ago
Andrew Dolgov 2d6847495f fix OTP 12 years ago
Andrew Dolgov d493aba238 allow logging in by sharepopup 12 years ago
Andrew Dolgov 97acbaf190 login system fixes
remove old-style session checking from backend.php
move outside subscription endpoint to public.php, change subscription
bookmarklet
12 years ago
Andrew Dolgov c3d2cda86d bump default for generated feed article count to 100 12 years ago
Andrew Dolgov 2ebf38a9bd public/rss: implement JSON output format 12 years ago
Andrew Dolgov 46b781491b set last_read to NOW() when publishing, order published feed by last read by default, allow overriding order in recently read feed 12 years ago
Andrew Dolgov 50b8b50355 sharepopup: add help text 12 years ago
Andrew Dolgov 8361e72478 implement sharing of arbitrary stuff using bookmarklet and API call, bump API version 12 years ago
Andrew Dolgov b8386ad3d1 disable OTP when saving user 12 years ago
Andrew Dolgov 304aadb907 remove twitter-specific code 12 years ago
Andrew Dolgov ec78654f4e add auth_base check_password() 12 years ago
Andrew Dolgov 3ca8af7fd8 require entering password before enabling/disabling otp 12 years ago
Andrew Dolgov b8cdc39433 focus input field in otp form 12 years ago
Andrew Dolgov 02cd6de128 api: add workaround to disable OTP 12 years ago
Andrew Dolgov 4e70344bbf auth internal: fix login screen warning 12 years ago
Andrew Dolgov 973392b9f5 pref-prefs/otpqrcode: do not show image if otp is enabled 12 years ago
Andrew Dolgov fb70f26ed9 implement one time passwords using TOTP 12 years ago
Andrew Dolgov fd26d5bfdf implement removing selected categories 12 years ago
Andrew Dolgov 4e02f58294 implement filter testing 12 years ago
Andrew Dolgov 75c648cf5c replace several preg_match() feed id tests with is_numeric() 12 years ago
Andrew Dolgov 5a49ed95a8 do not load test opml when debugging 12 years ago
Andrew Dolgov d7f9e4fc08 Merge branch 'master' of github.com:gothfox/Tiny-Tiny-RSS 12 years ago
Andrew Dolgov 3b003f6396 implement OPML filter import 12 years ago
Andrew Dolgov 8592a8e3b2 opml: fix cat_filter type 12 years ago
Andrew Dolgov 8b6e08a11a opml export filter format fix 12 years ago
Andrew Dolgov fd994f1a48 reimplement OPML filter export 12 years ago
Andrew Dolgov ff34bac2bf fix filter newrule reg_exp length 12 years ago
Andrew Dolgov ab564aef7b filterEditDlg: automatically open new rule dialog when active feed or article title present 12 years ago
Andrew Dolgov 84d9750edc show label color indicators in pref-filters 12 years ago
Andrew Dolgov 04e41840fe use dijit.form.CheckBox in filter edit dialog 12 years ago
Andrew Dolgov 69c6e94d35 implement basic filter search 12 years ago
Andrew Dolgov e8b703878d fix preffiltertree layout being wrong 12 years ago
Andrew Dolgov 37f78940d8 block type 5 filters (date) 12 years ago
Andrew Dolgov c2ee5846fa fix getfiltertree enabled on psql 12 years ago
Andrew Dolgov 5451903ce3 fix cat_filter parsed wrong on psql 12 years ago
Andrew Dolgov 6aff784575 implement multiple rule/action filters 12 years ago
Andrew Dolgov f9ebb32ca0 hide more obscure preferences under "show more" checkbox in pref-prefs,
bump schema
12 years ago
Andrew Dolgov 5417fbd77e implement recently read vfeed (-6) 12 years ago
Andrew Dolgov da1da2e4d8 quickAddFilter: prefill current feed in the dialog 12 years ago
Andrew Dolgov 4c9d0490c6 rework filter dialog to make feed/category selection easier 12 years ago
Andrew Dolgov c39befacb2 add (undocumented) _DISABLE_FEED_BROWSER 12 years ago
Andrew Dolgov 4c97d1f6af newVersionDlg: mention prefs updater 12 years ago
Andrew Dolgov 808dd053c6 implement web-based self updater (closes #395) 12 years ago
Andrew Dolgov 1280612515 self-update: update up to date prompt 12 years ago
Andrew Dolgov 27211afe92 implement experimental web-based updater 12 years ago
Andrew Dolgov 366f06f7cf update.php: display error message when running from the browser
mention self-updating in new version dialog
12 years ago
Andrew Dolgov 9aceda3afc remove hook-based plugins 12 years ago
Andrew Dolgov 23d2471c92 expand error messages in subscribeToFeed(), provide proper error message
when URL download failed (refs #489)
12 years ago
Andrew Dolgov 9da07c8ad2 unbreak classes/dlg 12 years ago
Andrew Dolgov 369dbc19d6 rework class system to use subdirectories
add placeholder plugin/hook system
12 years ago
Andrew Dolgov dc0374df2b auth_internal.change_password: do not rely on session 12 years ago
Andrew Dolgov d5fd183d18 move changing password code to authentication modules 12 years ago
Andrew Dolgov 200e0d4ebb save module user authenticated with, only allow password change if module is 'internal' 12 years ago
Andrew Dolgov 1e666f0aeb add hide_change_password session variable 12 years ago
Andrew Dolgov 501ed09a26 allow auto_create_user() to be used instead of find_user_by_login() when auto creating is off 12 years ago
Andrew Dolgov 0d421af86f split authentication to separate modules 12 years ago
Andrew Dolgov 3f9de6ccbc opml: remove CRs, tweak category node detection 12 years ago
Andrew Dolgov 65c8267980 opml: clean empty categories 12 years ago
Andrew Dolgov d75409bfda move opml stuff to classes/opml.php 12 years ago
Andrew Dolgov ba5296a19b disable dnd tip in pref_feeds 12 years ago
Andrew Dolgov 95ee44b33d fix drag-and-drop categorizing of feeds into nested cats 12 years ago
Andrew Dolgov 28537341ef pref_feeds: add missing methods to add/remove cats 12 years ago
Andrew Dolgov 5ef071e00b remove old category editor
allow creating/removing categories in main feed editor
12 years ago
Andrew Dolgov e07f89815b properly persist include_children 12 years ago
Andrew Dolgov fbf85cf646 print_feed_cat_select: display nested category structure
fix empty sub-sub-categories never being shown
12 years ago
Andrew Dolgov a26f57e63a fix savefeedorder for dojo 1.7 (wtf) 12 years ago
Andrew Dolgov d04f8c826f remove call-by-reference to comply with php 5.4 12 years ago
Andrew Dolgov 854a2ace86 change include_children to a togglebutton; add placeholder setting save in a session 12 years ago
Andrew Dolgov 09101297ee add toolbar checkbox to include subcategories to viewfeed() 12 years ago
Andrew Dolgov 2c5f231e43 add special indication for categories having unread items in child categories 12 years ago
Andrew Dolgov be514d00c9 remove feeds/index() 12 years ago
Andrew Dolgov 2ecd2df560 sorta-kinda fix the feedlist 12 years ago
Andrew Dolgov 2a060a9456 initial work on nested categories 12 years ago
Andrew Dolgov d3253f49aa Revert "add experimental clientside headline clamping (refs #479)"
This reverts commit 26e4b12466.
12 years ago
Andrew Dolgov 26e4b12466 add experimental clientside headline clamping (refs #479) 12 years ago
Steven Allen 093fae5e3c Change ttrss_logo.png (deleted) to logo_wide.png 12 years ago
Andrew Dolgov 687bb90d27 remove COUNTERS_MAX_AGE, add some optimization for counter queries (refs #464) 13 years ago
Andrew Dolgov 0e4a7d7a94 remove memcached stuff 13 years ago
John Keeping 17f9d2003a Make Handler::before() hierarchy consistent
In API, the before() method (inherited from Handler) takes a $method
argument, although this is not declared for the before method() in
handler.  PHP in strict mode treats this as an error.

Since call sites already pass the $method argument, change
Handler::before() and the before() method in all other subclasses to
take this argument.
13 years ago
Andrew Dolgov 68916212b2 use Uncategorized coalesce in a few more places 13 years ago
Andrew Dolgov 310fa2ddef implement search in pref-filters 13 years ago
Andrew Dolgov a5e0ffb0ce fix creating category filters on mysql 13 years ago
Andrew Dolgov 40b67ac7c7 Merge pull request #19 from plaidfluff/7e454e815dd67f0ac3804e213599be9bbbc2755e
Change update.php shebang to support any in-path installation locatio…
Fix category count query for mysql
13 years ago
fluffy 7e454e815d Fix category count query for mysql 13 years ago
Andrew Dolgov 82ace1aba8 fix borders on filter test results container 13 years ago
Andrew Dolgov aa8b48a02b fix creating filter with active article title in cdm 13 years ago
Andrew Dolgov 917c12ee30 show empty categories in italic in category editor 13 years ago
Andrew Dolgov a62812a6b4 show amount of feeds category holds in category editor 13 years ago
Andrew Dolgov ca6a0741b4 tweak dialog topmost notices; add an explanation for the batch feed editor 13 years ago
Andrew Dolgov ddb575c744 add select all/none functionality to several edit dialogs 13 years ago
Andrew Dolgov 2fb947eb21 prevent session modification in public/rss 13 years ago
Andrew Dolgov 64436e1039 prevent session modification in public/share 13 years ago
Andrew Dolgov 184f51952c experimental tweak to not mark articles newer than last one loaded in the buffer as read 13 years ago
Alexandre Gravel-Raymond b1e592d37f Escape quotes in bookmarklet confirm message 13 years ago
Andrew Dolgov 949b1a9491 hide several user-related prompts when using remote auth + auto_login (closes #447) 13 years ago
Andrew Dolgov 35b9844be1 fix broken feed icon upload (closes #459) 13 years ago
Andrew Dolgov 941e48a402 apply patch from gmargo to differentiate between manual and new feed after-subscription update 13 years ago
Andrew Dolgov ecbd7b91fe allow manual updates for feeds with disabled automatic updates 13 years ago
Andrew Dolgov 442456184c simplify catching up of feeds, do not reload headlines buffer on catchup unless on_catchup_show_next_feed is enabled (closes #442) 13 years ago
Andrew Dolgov d4c64ecc77 pref_prefs: only disable password changing block in single user mode (closes #444) 13 years ago
André a498d18b55 Remove apostrophs from boolean values when editing feeds in batch 13 years ago
Andrew Dolgov b11e9943d8 API: add order_id to getCategories; add feed_title to getHeadlines; bump api level to 3 13 years ago
Andrew Dolgov 5b7bd238ee pref-feeds: apply patch by gmargo@forum to show/hide empty categories 13 years ago
Andrew Dolgov d50edb08ba fix wrong translation in de_DE 13 years ago
Andrew Dolgov 9c97041d55 make generated_feed parameters optional, add specific date type for RSS feeds 13 years ago
Andrew Dolgov f4ce1d645e fix encoding for pref-feeds/add when called as a HTML page (closes #423) 13 years ago
Andrew Dolgov 56fbb82cb0 properly handle invalid regular expressions supplied when testing filters, add some additional regexp checks (closes #427) 13 years ago
Andrew Dolgov 5f85d90d71 remove readitlater button plugin from trunk, mention Plugins page in config.php 13 years ago
Andrew Dolgov 74eef4fca8 fix rpc setpref (key unassigned) 13 years ago
Andrew Dolgov 7e431502dd fix customize CSS dialog disappearing newlines (2) 13 years ago
Andrew Dolgov 0380cfa9ee fix customize CSS dialog disappearing newlines 13 years ago
Andrew Dolgov 1a740cf68e api: limit getHeadlines output to 60 headlines 13 years ago
Andrew Dolgov 8437c066e1 implement digestTest back
misc digest updates and improvements
13 years ago
Andrew Dolgov 8eba830f08 pref_prefs: mention that tt-rss server time is UTC 13 years ago
Andrew Dolgov 1b92f54375 update DIGEST_PREFERRED_TIME prefs regexp 13 years ago
Andrew Dolgov 1b9b19af0f try to send digests within 2 hours of preferred time only 13 years ago
Andrew Dolgov 76c843a9ba pref_prefs: fix markup error 13 years ago
Andrew Dolgov e95e78198f update translations 13 years ago
Andrew Dolgov 6d9455e9ba add DIGEST_PREFERRED_TIME to profile blacklist 13 years ago
Andrew Dolgov 61c1812f29 implement preferred time for sending out digests 13 years ago
Andrew Dolgov 33f0fdd0a2 prefs: implement batch subscribe to feeds 13 years ago
Andrew Dolgov aa60999b97 allow subscribing to twitter feeds without oauth (if require auth checkbox is unset) 13 years ago
Andrew Dolgov 8db5d8ea6d add get_random_bytes() in case openssl_random_pseudo_bytes() is unavailable 13 years ago
Andrew Dolgov 098df83ba6 fix various password-change related functions 13 years ago
Andrew Dolgov 3e4af5b0b3 api: add search parameters to getHeadlines (bump API level) 13 years ago
Andrew Dolgov f6cd767b9f fix savefeedorder not working due to CSRF check (refs #366) 13 years ago
Andrew Dolgov dddd80cf1b only gzip xml exported data when gz functions are available 13 years ago
Andrew Dolgov 051195eccd xml export: gzip export data 13 years ago
Andrew Dolgov 41f68571ab fix opml export 13 years ago
Andrew Dolgov a1159c01f3 tweak import/export preferences pane 13 years ago
Andrew Dolgov 7acc194b53 Merge branch 'master' of github.com:gothfox/Tiny-Tiny-RSS 13 years ago
Andrew Dolgov 55f34b811f implement experimental personal data import 13 years ago
Andrew Dolgov 2c43770f98 export: add link 13 years ago
Andrew Dolgov 566faa1476 implement neutral-format personal data export 13 years ago
Andrew Dolgov b4a9e560aa mention filters import/export on prefs OPML page 13 years ago
Andrew Dolgov 34aa9e20c7 implement filter import 13 years ago
Andrew Dolgov bbefea90a7 implement import/export of labels using OPML 13 years ago
Andrew Dolgov 11cb9506d2 pngquant some images 13 years ago
Andrew Dolgov ba975b2ec7 implement filtering by category (closes #386) 13 years ago
Andrew Dolgov b69a09ea07 fix filter test dialog 13 years ago
Andrew Dolgov 3c696512fc universal image caching and automatic cache directories maintenance 13 years ago
Andrew Dolgov 8484ce2258 experimental CSRF protection 13 years ago
Andrew Dolgov 036cd3a410 globalUpdateFeeds: disable debugging info 13 years ago
Andrew Dolgov c4c74732db fix OPML import 13 years ago
Andrew Dolgov 638e27c8d4 rename dismiss article button 13 years ago
Andrew Dolgov 55ad22fa55 add note plugin 13 years ago
Andrew Dolgov ae0647e085 add readitlater plugin 13 years ago
Andrew Dolgov 1baac2803c add mail and share plugins 13 years ago
Andrew Dolgov 8e70d965a8 add missing files 13 years ago
Andrew Dolgov f9ac31d671 move tweet button to a plugin, implement basic support for article action button plugins 13 years ago
Andrew Dolgov f10808259c tweak headlines-toolbar appearance 13 years ago
Andrew Dolgov d0dfb4c8a8 fix pref_filters 13 years ago