System carehelp wanted
Métriques du dépôt
- Stars
- (15 022 stars)
- Métriques de merge PR
- (Merge moyen 11j 12h) (36 PRs mergées en 30 j)
Description
#!/usr/bin/env php
<?php
$last_commit = trim(`git log --format="%H" -n 1`);
$grep = trim(`grep -E -irn '(//|/\*|\* @|#|<!--)\s?(TODO|FIXME)' --exclude-dir i18n --exclude-dir simplepie app lib p cli Makefile *.php *.neon`);
$lines = explode("\n", $grep);
$output = "Result from $last_commit:\n---\n\n### Uncompleted (" . count($lines) . ")\n\n";
foreach ($lines as $line) {
$split = explode(':', $line);
if (count($split) < 3) {
continue;
}
$file = $split[0];
$line = $split[1];
$match = addslashes(htmlspecialchars(trim(implode(':', array_slice($split, 2))), ENT_NOQUOTES, 'UTF-8'));
$output .= "* [ ] [$file:$line](https://github.com/FreshRSS/FreshRSS/tree/$last_commit/$file#L$line): <code>$match</code>" . "\n";
}
echo $output;
Result from 8cb2158a390088738eaa27ed3b01d784c35d9f9d:
Uncompleted (73)
- app/views/index/reader.phtml:17: <a href="<?= Minz_Url::display(Minz_Request::currentRequest()) ?>"><?= _t('gen.js.new_article'); /* TODO: move string in JS*/ ?></a>
- app/views/index/reader.phtml:55: <a href="<?= Minz_Url::display(Minz_Request::currentRequest()) ?>"><?= _t('gen.js.new_article'); /* TODO: move string in JS*/ ?></a>
- app/views/index/normal.phtml:42: <a href="<?= Minz_Url::display(Minz_Request::currentRequest()) ?>"><?= _t('gen.js.new_article'); /* TODO: move string in JS*/ ?></a>
- app/views/index/normal.phtml:179: <a href="<?= Minz_Url::display(Minz_Request::currentRequest()) ?>"><?= _t('gen.js.new_article'); /* TODO: move string in JS*/ ?></a>
- app/views/index/rss.phtml:59: $enclosures = iterator_to_array($item->enclosures(false), preserve_keys: false); // TODO: Optimise: avoid iterator_to_array if possible
- app/views/stats/unreadDates.phtml:38: <tr><?php /* TODO: Make that URL show all articles, including those with PRIORITY_ARCHIVED */ ?>
- app/Models/Context.php:73: //TODO: Keep in session what we need instead of always reloading from disk
- app/Models/Context.php:108: //TODO: Keep in session what we need instead of always reloading from disk
- app/Models/Context.php:414: // TODO: Check whether this section is used
- app/Models/EntryDAOSQLite.php:122: //if (true) { //Speed heuristics //TODO: Not implemented yet for SQLite (so always call IDs one by one)
- app/Models/Search.php:915: //TODO: Replace all those str_replace with PREG_OFFSET_CAPTURE
- app/Models/Search.php:920: //TODO: Replace all those str_replace with PREG_OFFSET_CAPTURE
- app/Models/Themes.php:158: // TODO: Change for enum in PHP 8.1+
- app/Models/EntryDAOPGSQL.php:92: //TODO: Update to PostgreSQL 9.5+ syntax with ON CONFLICT DO NOTHING
- app/Models/Feed.php:1335: if (!empty($hubJson['lease_end']) && is_int($hubJson['lease_end']) && $hubJson['lease_end'] < (time() + (3600 * 23))) { //TODO: Make a better policy
- app/Models/BooleanSearch.php:353: // // TODO: Consider throwing an error or warning in case of non-matching parenthesis
- app/Models/BooleanSearch.php:356: // // TODO: Consider throwing an error or warning in case of non-matching parenthesis
- app/Models/Auth.php:97: // TODO load extension
- app/Models/Auth.php:124: // TODO: extensions
- app/Models/Auth.php:199: // TODO: extensions
- app/Models/Auth.php:247: // TODO: not implemented - just let the user through
- app/Models/TagDAOPGSQL.php:8: return ''; //TODO
- app/Models/EntryDAO.php:148: //TODO: Move the database auto-updates to DatabaseDAO
- app/Models/EntryDAO.php:382: * @todo simplify the query by removing the str_repeat. I am pretty sure
- app/Models/Category.php:104: return []; // TODO (e.g., credentials for Dynamic OPML)
- app/Controllers/authController.php:93: default => Minz_Error::error(404), // TODO load plugin instead
- app/Controllers/statsController.php:211: * @todo verify that the metrics used here make some sense. Especially
- app/Controllers/userController.php:370: * @todo clean up this method. Idea: write a method to init a user with basic information.
- app/Controllers/userController.php:412: // TODO: We may want to ask the user to accept TOS before first login
- app/Controllers/userController.php:631: * @todo clean up this method. Idea: create a User->clean() method.
- app/Controllers/categoryController.php:273: // TODO: Delete old favicons
- app/Controllers/subscriptionController.php:142: if ($user !== '' && $pass !== '') { //TODO: Sanitize
- app/Controllers/feedController.php:178: if ($user != '' && $pass != '') { //TODO: Sanitize
- app/Controllers/feedController.php:471: $pshbMinAge = time() - (3600 * 24); //TODO: Make a configuration.
- app/Controllers/feedController.php:1034: * @todo should handle order of the feed inside the category.
- app/Controllers/feedController.php:1045: // TODO: return something useful
- app/Controllers/feedController.php:1063: // TODO: Delete old favicon (non-custom)
- app/Controllers/feedController.php:1195: //TODO: Consider an unbuffered query for PostgreSQL
- app/Controllers/entryController.php:241: * @todo move this action in configure controller.
- app/Controllers/entryController.php:242: * @todo call this action through web-cron when available
- app/Controllers/entryController.php:275: * @todo should be in feedController
- app/Controllers/indexController.php:150: * @todo: change this view into specific CSS rules?
- app/Controllers/indexController.php:404: $logs = FreshRSS_LogDAO::lines(); //TODO: ask only the necessary lines
- app/Services/ImportService.php:126: // TODO what if the feed already exists in the database?
- app/install.php:255: '', //TODO: Add e-mail
- app/install.php:483: printStep1Template('curl', $res['curl'], [$curlVersion]); // TODO: We actually require cURL >= 7.52 for CURLPROXY_HTTPS
- lib/lib_rss.php:384: // 'area' => [], // TODO: support <area> after rewriting ids with a format like #ugc-<insert original id here> (maybe)
- lib/lib_rss.php:438: // 'map' => [], // TODO: support <map> after rewriting ids with a format like #ugc-<insert original id here> (maybe)
- lib/lib_rss.php:522: // TODO: Support SVG after sanitizing and URL rewriting of xlink:href
- lib/lib_rss.php:783: // TODO: Implement HTTP 1.1 conditional GET If-Modified-Since
- lib/lib_rss.php:854: // TODO: Implement HTTP 410 Gone
- lib/lib_install.php:10: $curl = extension_loaded('curl'); // TODO: We actually require cURL >= 7.52 for CURLPROXY_HTTPS
- lib/lib_install.php:88: FreshRSS_Context::systemConf()->db = $db; //TODO: Remove this Minz limitation "Indirect modification of overloaded property"
- lib/Minz/ExtensionManager.php:7: * @todo see coding style for methods!!
- lib/Minz/Url.php:38: //TODO: Implement proper resolver of relative parts such as /test/./../
- lib/Minz/Request.php:365: * @todo improve test with a more valid technique (e.g. test with an external server?)
- lib/lib_date.php:70: return $isoDate === null || $isoDate === '' ? null : str_replace(['-', ':'], '', $isoDate); //FIXME: Bug with negative time zone
- p/api/greader.php:241: //Minz_Log::debug('token('. $user . ')', API_LOG); //TODO: Implement real token that expires
- p/api/greader.php:253: if ($user !== Minz_User::INTERNAL_USER && ( //TODO: Check security consequences
- p/api/greader.php:583: //TODO: Improve: avoid iterator_to_array. Type test only for PHP < 8.2
- p/api/greader.php:1215: // TODO: support multiple streams
- p/api/query.php:57: // TODO: Consider taking advantage of $feedMode, only for monotonous queries {all, categories, feeds} and not dynamic ones {read/unread, favourites, user labels}
- p/api/query.php:166: $entries = iterator_to_array($view->entries, preserve_keys: false); // TODO: Optimise: avoid iterator_to_array if possible
- p/api/pshb.php:120: // // TODO: Support WebSub hub redirection
- p/api/fever.php:482: $category = $categoryDAO->searchById((int)$id); //TODO: Transform to SQL query without loop! Consider FreshRSS_CategoryDAO::listCategories(true)
- p/scripts/statsWithChartjs.js:135: label: labelAverage, // Todo: i18n
- Makefile:197: # TODO: Add composer install
- Makefile:218: # TODO: Add shellcheck, shfmt, hadolint
- config-user.default.php:54: 'mark_updated_article_unread' => false, //TODO: -1 => ignore, 0 => update, 1 => update and mark as unread
- phpstan-next.neon:7: reportPossiblyNonexistentGeneralArrayOffset: false # TODO: pass maybe
- phpstan-next.neon:10: # TODO: Update files below and remove them from this list
- phpstan.dist.neon:53: missingCheckedExceptionInThrows: false # TODO pass maybe