diff --git a/.gitignore b/.gitignore index 646d24c..e69de29 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +0,0 @@ -src/data/ diff --git a/README.markdown b/README.markdown index 649666c..ad37a83 100644 --- a/README.markdown +++ b/README.markdown @@ -1,4 +1,4 @@ -Miniflux - Minimalist Feed Reader +Miniflux - Minimalist News Reader ================================= Miniflux is a minimalist web-based news reader. @@ -16,22 +16,22 @@ Features - Protected by a login/password (only one possible user) - Use secure headers (only external images are allowed) - Open external links inside a new tab with a `rel="noreferrer"` attribute +- Mobile CSS (responsive design) Todo ---- - Remove older items from the database -- Mobile CSS Requirements ------------ - PHP >= 5.3 -- XML extensions (SimpleXML, DOM...) -- Sqlite +- PHP XML extensions (SimpleXML, DOM...) +- PHP Sqlite extensions -Dependencies ------------- +Libraries used +-------------- - [PicoFeed](https://github.com/fguillot/picoFeed) - [PicoFarad](https://github.com/fguillot/picoFarad) @@ -42,4 +42,33 @@ Dependencies Installation ------------ -In progress... +1. You must have a web server with PHP installed (version 5.3 minimum) with the Sqlite and XML extensions +2. Download the source code and copy the directory miniflux where you want +3. Check if the directory data is writeable (Miniflux store everything inside a Sqlite database) +4. With your browser go to +5. The default login and password is admin/admin +6. Start to use the software + +FAQ +---- + +### How to update your feeds with a cronjob? + +You just need to be inside the directory `miniflux` and run the script `cronjob.php`. + +By example: + + crontab -e + + 0 */4 * * * cd /path/to/miniflux && php cronjob.php >/dev/null 2>&1 + + +### How Miniflux update my feeds from the user interface? + +Miniflux use an Ajax request to refresh each subscription. +By default, there is only 5 feeds updated in parallel. + + +### I have 600 subscriptions, how Miniflux handle that? + +Your life is cluttered. diff --git a/src/assets/css/app.css b/miniflux/assets/css/app.css similarity index 68% rename from src/assets/css/app.css rename to miniflux/assets/css/app.css index 289d9bb..21b3ca9 100644 --- a/src/assets/css/app.css +++ b/miniflux/assets/css/app.css @@ -1,3 +1,4 @@ +figure, li, ul, table, @@ -17,6 +18,8 @@ body { max-width: 750px; color: #333; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; } a { @@ -49,6 +52,71 @@ h3 { font-size: 1.2em; } +blockquote { + border-left: 4px solid #ddd; + padding-left: 25px; + margin-left: 20px; + margin-top: 20px; + margin-bottom: 20px; + color: #777; + line-height: 1.4em; + font-family: Georgia, serif; +} + +blockquote + p { + color: #555; + font-style: italic; +} + +figcaption { + font-size: 0.8em; + text-transform: uppercase; + color: #777; +} + +table { + width: 100%; + border-collapse: collapse; + border-spacing: 0; +} + +table caption { + font-weight: bold; + font-size: 1.0em; + text-align: left; + padding-bottom: 0.5em; + padding-top: 0.5em; +} + +th, +td { + border: 1px solid #ccc; + padding-top: 0.5em; + padding-bottom: 0.5em; + padding-left: 5px; +} + +th { + text-align: left; +} + +pre { + border: 1px solid #ccc; + border-radius: 10px; + background: #f0f0f0; + padding: 0.8em; + overflow: auto; + color: brown; +} + +code { + color: brown; +} + +caption code, +p code { + font-size: 1.1em; +} /* forms */ form { @@ -63,6 +131,10 @@ label { width: 10em; } +input { + -webkit-appearance: none; +} + input[type="email"], input[type="tel"], input[type="password"], @@ -160,7 +232,7 @@ textarea.form-error { /* buttons */ .btn { - display: block; + display: inline-block; color: #333; border: 1px solid #ccc; background: #efefef; @@ -172,6 +244,24 @@ textarea.form-error { border-radius: 2px; } +a.btn { + text-decoration: none; + font-weight: bold; +} + +.btn-red { + border-color: #b0281a;; + background: #d14836; + color: #fff; +} + +a.btn-red:hover, +.btn-red:hover, +.btn-red:focus { + color: #fff; + background: #c53727; +} + .btn-blue { border-color: #3079ed; background: #4d90fe; @@ -237,6 +327,7 @@ nav .active a { } .page-header li { + font-size: 90%; display: inline; padding-left: 10px; padding-right: 10px; @@ -256,10 +347,10 @@ nav .active a { .items h2 { font-size: 100%; - font-weight: bold; margin: 0; padding: 0; padding-bottom: 2px; + font-weight: bold; } .items a { @@ -267,7 +358,7 @@ nav .active a { } .items a:hover, -.items :focus { +.items a:focus { text-decoration: underline; } @@ -280,14 +371,29 @@ nav .active a { color: #aaa; } +.items .preview { + color: #555; + line-height: 1.5em; + font-size: 100%; + font-family: Georgia, serif; +} + /* item */ .item { - font-size: 110%; - color: #444; + color: #333; padding-bottom: 50px; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; +} + +.item p, +.item li { + font-family: Georgia, serif; + line-height: 1.6em; +} + +.item h2, +.item h3 { + font-weight: bold; } .item pre, @@ -305,19 +411,6 @@ nav .active a { margin-left: 25px; } -.item li { - margin-top: 10px; -} - -.item pre { - border: 1px solid #ccc; - border-radius: 10px; - background: #f0f0f0; - padding: 20px; - overflow: auto; - color: brown; -} - .item img { display: block; margin-top: 15px; @@ -325,29 +418,71 @@ nav .active a { max-width: 100%; } -.item code { - color: brown; -} - .infos { - padding-bottom: 30px; + padding-bottom: 20px; color: #ccc; } -.item h1 { -} - .item h1 a { - font-size: 150%; + font-size: 2.1em; text-decoration: none; } -blockquote { - border-left: 4px solid #ddd; - padding-left: 25px; - margin-left: 20px; - margin-top: 20px; - margin-bottom: 20px; - color: #666; - line-height: 22px; +.item a:visited { + color: purple; +} + + +/* mobile design */ +@media only screen and (max-width: 480px) { + + body { + margin-left: 5px; + margin-right: 5px; + max-width: 480px; + } + + nav .active a { + font-weight: normal; + } + + .logo { + display: block; + float: none; + } + + header { + margin: 0; + width: 100%; + } + + header ul { + text-align: left; + } + + header li { + padding: 0; + width: 50%; + float: right; + display: block; + line-height: 25px; + } + + .page { + clear: both; + padding-top: 20px; + } + + .item { + font-size: 0.8em; + } + + .item h1 { + font-size: 0.9em; + } + + .item .infos { + font-size: 0.9em; + padding: 0; + } } \ No newline at end of file diff --git a/src/assets/img/refresh.gif b/miniflux/assets/img/refresh.gif similarity index 100% rename from src/assets/img/refresh.gif rename to miniflux/assets/img/refresh.gif diff --git a/src/assets/js/app.js b/miniflux/assets/js/app.js similarity index 97% rename from src/assets/js/app.js rename to miniflux/assets/js/app.js index 89ef531..e5dbf22 100644 --- a/src/assets/js/app.js +++ b/miniflux/assets/js/app.js @@ -56,7 +56,7 @@ if (! response.result) { - window.alert('Unable to refresh this feed: ' + feed_id); + //window.alert('Unable to refresh this feed: ' + feed_id); } } catch (e) {} diff --git a/src/common.php b/miniflux/common.php similarity index 100% rename from src/common.php rename to miniflux/common.php diff --git a/src/cronjob.php b/miniflux/cronjob.php similarity index 100% rename from src/cronjob.php rename to miniflux/cronjob.php diff --git a/miniflux/data/.gitignore b/miniflux/data/.gitignore new file mode 100644 index 0000000..f935021 --- /dev/null +++ b/miniflux/data/.gitignore @@ -0,0 +1 @@ +!.gitignore diff --git a/src/index.php b/miniflux/index.php similarity index 88% rename from src/index.php rename to miniflux/index.php index 30375ed..d156635 100644 --- a/src/index.php +++ b/miniflux/index.php @@ -95,13 +95,28 @@ Router\get_action('history', function() { }); +Router\get_action('confirm-remove', function() { + + $id = Request\int_param('feed_id'); + + Response\html(Template\layout('confirm_remove', array( + 'feed' => Model\get_feed($id), + 'menu' => 'feeds' + ))); +}); + + Router\get_action('remove', function() { $id = Request\int_param('feed_id'); - if ($id) { + if ($id && Model\remove_feed($id)) { - Model\remove_feed($id); + Session\flash('This subscription has been removed successfully'); + } + else { + + Session\flash_error('Unable to remove this subscription'); } Response\redirect('?action=feeds'); @@ -160,6 +175,7 @@ Router\get_action('feeds', function() { Response\html(Template\layout('feeds', array( 'feeds' => Model\get_feeds(), + 'nothing_to_read' => Request\int_param('nothing_to_read'), 'menu' => 'feeds' ))); }); @@ -265,8 +281,15 @@ Router\post_action('config', function() { Router\notfound(function() { + $items = Model\get_unread_items(); + + if (empty($items)) { + + Response\redirect('?action=feeds¬hing_to_read=1'); + } + Response\html(Template\layout('unread_items', array( - 'items' => Model\get_unread_items(), + 'items' => $items, 'menu' => 'unread' ))); }); \ No newline at end of file diff --git a/src/model.php b/miniflux/model.php similarity index 98% rename from src/model.php rename to miniflux/model.php index d22f9b1..9b1ca98 100644 --- a/src/model.php +++ b/miniflux/model.php @@ -129,7 +129,7 @@ function get_unread_items() { return \PicoTools\singleton('db') ->table('items') - ->columns('items.id', 'items.title', 'items.updated', 'items.url', 'feeds.site_url') + ->columns('items.id', 'items.title', 'items.updated', 'items.url', 'feeds.site_url', 'items.content') ->join('feeds', 'id', 'feed_id') ->eq('status', 'unread') ->desc('updated') @@ -197,11 +197,6 @@ function update_feeds() update_items($feed['id'], $parser->execute()->items); } - else { - - print_r($feed); - die; - } } } diff --git a/src/schema.php b/miniflux/schema.php similarity index 100% rename from src/schema.php rename to miniflux/schema.php diff --git a/src/templates/add.php b/miniflux/templates/add.php similarity index 100% rename from src/templates/add.php rename to miniflux/templates/add.php diff --git a/src/templates/app_footer.php b/miniflux/templates/app_footer.php similarity index 100% rename from src/templates/app_footer.php rename to miniflux/templates/app_footer.php diff --git a/src/templates/app_header.php b/miniflux/templates/app_header.php similarity index 100% rename from src/templates/app_header.php rename to miniflux/templates/app_header.php diff --git a/src/templates/config.php b/miniflux/templates/config.php similarity index 100% rename from src/templates/config.php rename to miniflux/templates/config.php diff --git a/miniflux/templates/confirm_remove.php b/miniflux/templates/confirm_remove.php new file mode 100644 index 0000000..4c48a75 --- /dev/null +++ b/miniflux/templates/confirm_remove.php @@ -0,0 +1,10 @@ + + +

Do you really want to remove this subscription: ""?

+ +
+ Yes + or cancel +
\ No newline at end of file diff --git a/src/templates/feeds.php b/miniflux/templates/feeds.php similarity index 72% rename from src/templates/feeds.php rename to miniflux/templates/feeds.php index ac89f31..c39d961 100644 --- a/src/templates/feeds.php +++ b/miniflux/templates/feeds.php @@ -14,6 +14,10 @@ + +

Nothing to read, do you want to update your subscriptions?

+ +
diff --git a/src/templates/import.php b/miniflux/templates/import.php similarity index 100% rename from src/templates/import.php rename to miniflux/templates/import.php diff --git a/src/templates/login.php b/miniflux/templates/login.php similarity index 100% rename from src/templates/login.php rename to miniflux/templates/login.php diff --git a/src/templates/read_item.php b/miniflux/templates/read_item.php similarity index 100% rename from src/templates/read_item.php rename to miniflux/templates/read_item.php diff --git a/src/templates/read_items.php b/miniflux/templates/read_items.php similarity index 100% rename from src/templates/read_items.php rename to miniflux/templates/read_items.php diff --git a/src/templates/unread_items.php b/miniflux/templates/unread_items.php similarity index 76% rename from src/templates/unread_items.php rename to miniflux/templates/unread_items.php index 4c0f8a3..1789ef2 100644 --- a/src/templates/unread_items.php +++ b/miniflux/templates/unread_items.php @@ -1,6 +1,6 @@ -

No unread items.

+

Nothing to read.

@@ -15,6 +15,9 @@

+

+ +

| direct link diff --git a/src/vendor/PicoDb/Database.php b/miniflux/vendor/PicoDb/Database.php similarity index 100% rename from src/vendor/PicoDb/Database.php rename to miniflux/vendor/PicoDb/Database.php diff --git a/src/vendor/PicoDb/Drivers/Sqlite.php b/miniflux/vendor/PicoDb/Drivers/Sqlite.php similarity index 100% rename from src/vendor/PicoDb/Drivers/Sqlite.php rename to miniflux/vendor/PicoDb/Drivers/Sqlite.php diff --git a/src/vendor/PicoDb/Schema.php b/miniflux/vendor/PicoDb/Schema.php similarity index 100% rename from src/vendor/PicoDb/Schema.php rename to miniflux/vendor/PicoDb/Schema.php diff --git a/src/vendor/PicoDb/Table.php b/miniflux/vendor/PicoDb/Table.php similarity index 100% rename from src/vendor/PicoDb/Table.php rename to miniflux/vendor/PicoDb/Table.php diff --git a/src/vendor/PicoFarad/Request.php b/miniflux/vendor/PicoFarad/Request.php similarity index 100% rename from src/vendor/PicoFarad/Request.php rename to miniflux/vendor/PicoFarad/Request.php diff --git a/src/vendor/PicoFarad/Response.php b/miniflux/vendor/PicoFarad/Response.php similarity index 100% rename from src/vendor/PicoFarad/Response.php rename to miniflux/vendor/PicoFarad/Response.php diff --git a/src/vendor/PicoFarad/Router.php b/miniflux/vendor/PicoFarad/Router.php similarity index 100% rename from src/vendor/PicoFarad/Router.php rename to miniflux/vendor/PicoFarad/Router.php diff --git a/src/vendor/PicoFarad/Session.php b/miniflux/vendor/PicoFarad/Session.php similarity index 100% rename from src/vendor/PicoFarad/Session.php rename to miniflux/vendor/PicoFarad/Session.php diff --git a/src/vendor/PicoFeed/Export.php b/miniflux/vendor/PicoFeed/Export.php similarity index 100% rename from src/vendor/PicoFeed/Export.php rename to miniflux/vendor/PicoFeed/Export.php diff --git a/src/vendor/PicoFeed/Filter.php b/miniflux/vendor/PicoFeed/Filter.php similarity index 97% rename from src/vendor/PicoFeed/Filter.php rename to miniflux/vendor/PicoFeed/Filter.php index 3853bbd..9c7dd24 100644 --- a/src/vendor/PicoFeed/Filter.php +++ b/miniflux/vendor/PicoFeed/Filter.php @@ -40,7 +40,12 @@ class Filter 'br' => array(), 'del' => array(), 'a' => array('href'), - 'img' => array('src', 'width', 'height') + 'img' => array('src'), + 'figure' => array(), + 'figcaption' => array(), + 'cite' => array(), + 'time' => array('datetime'), + 'abbr' => array('title') ); public $strip_tags_content = array( diff --git a/src/vendor/PicoFeed/Import.php b/miniflux/vendor/PicoFeed/Import.php similarity index 100% rename from src/vendor/PicoFeed/Import.php rename to miniflux/vendor/PicoFeed/Import.php diff --git a/src/vendor/PicoFeed/Parser.php b/miniflux/vendor/PicoFeed/Parser.php similarity index 100% rename from src/vendor/PicoFeed/Parser.php rename to miniflux/vendor/PicoFeed/Parser.php diff --git a/src/vendor/PicoFeed/Reader.php b/miniflux/vendor/PicoFeed/Reader.php similarity index 100% rename from src/vendor/PicoFeed/Reader.php rename to miniflux/vendor/PicoFeed/Reader.php diff --git a/src/vendor/PicoFeed/Writer.php b/miniflux/vendor/PicoFeed/Writer.php similarity index 100% rename from src/vendor/PicoFeed/Writer.php rename to miniflux/vendor/PicoFeed/Writer.php diff --git a/src/vendor/PicoTools/Chrono.php b/miniflux/vendor/PicoTools/Chrono.php similarity index 100% rename from src/vendor/PicoTools/Chrono.php rename to miniflux/vendor/PicoTools/Chrono.php diff --git a/src/vendor/PicoTools/Command.php b/miniflux/vendor/PicoTools/Command.php similarity index 100% rename from src/vendor/PicoTools/Command.php rename to miniflux/vendor/PicoTools/Command.php diff --git a/src/vendor/PicoTools/Config.php b/miniflux/vendor/PicoTools/Config.php similarity index 100% rename from src/vendor/PicoTools/Config.php rename to miniflux/vendor/PicoTools/Config.php diff --git a/src/vendor/PicoTools/Crypto.php b/miniflux/vendor/PicoTools/Crypto.php similarity index 100% rename from src/vendor/PicoTools/Crypto.php rename to miniflux/vendor/PicoTools/Crypto.php diff --git a/src/vendor/PicoTools/Dependency_Injection.php b/miniflux/vendor/PicoTools/Dependency_Injection.php similarity index 100% rename from src/vendor/PicoTools/Dependency_Injection.php rename to miniflux/vendor/PicoTools/Dependency_Injection.php diff --git a/src/vendor/PicoTools/Helper.php b/miniflux/vendor/PicoTools/Helper.php similarity index 93% rename from src/vendor/PicoTools/Helper.php rename to miniflux/vendor/PicoTools/Helper.php index d0ab0ff..a22a27a 100644 --- a/src/vendor/PicoTools/Helper.php +++ b/miniflux/vendor/PicoTools/Helper.php @@ -55,6 +55,23 @@ function get_host_from_url($url) } +function summary($value, $min_length = 5, $max_length = 120, $end = '[...]') +{ + $length = strlen($value); + + if ($length > $max_length) { + + return substr($value, 0, strpos($value, ' ', $max_length)).' '.$end; + } + else if ($length < $min_length) { + + return ''; + } + + return $value; +} + + function in_list($id, array $listing) { if (isset($listing[$id])) { diff --git a/src/vendor/PicoTools/Pixtag.php b/miniflux/vendor/PicoTools/Pixtag.php similarity index 100% rename from src/vendor/PicoTools/Pixtag.php rename to miniflux/vendor/PicoTools/Pixtag.php diff --git a/src/vendor/PicoTools/Template.php b/miniflux/vendor/PicoTools/Template.php similarity index 100% rename from src/vendor/PicoTools/Template.php rename to miniflux/vendor/PicoTools/Template.php diff --git a/src/vendor/PicoTools/Translator.php b/miniflux/vendor/PicoTools/Translator.php similarity index 100% rename from src/vendor/PicoTools/Translator.php rename to miniflux/vendor/PicoTools/Translator.php diff --git a/src/vendor/SimpleValidator/Base.php b/miniflux/vendor/SimpleValidator/Base.php similarity index 100% rename from src/vendor/SimpleValidator/Base.php rename to miniflux/vendor/SimpleValidator/Base.php diff --git a/src/vendor/SimpleValidator/Validator.php b/miniflux/vendor/SimpleValidator/Validator.php similarity index 100% rename from src/vendor/SimpleValidator/Validator.php rename to miniflux/vendor/SimpleValidator/Validator.php diff --git a/src/vendor/SimpleValidator/Validators/Alpha.php b/miniflux/vendor/SimpleValidator/Validators/Alpha.php similarity index 100% rename from src/vendor/SimpleValidator/Validators/Alpha.php rename to miniflux/vendor/SimpleValidator/Validators/Alpha.php diff --git a/src/vendor/SimpleValidator/Validators/AlphaNumeric.php b/miniflux/vendor/SimpleValidator/Validators/AlphaNumeric.php similarity index 100% rename from src/vendor/SimpleValidator/Validators/AlphaNumeric.php rename to miniflux/vendor/SimpleValidator/Validators/AlphaNumeric.php diff --git a/src/vendor/SimpleValidator/Validators/Email.php b/miniflux/vendor/SimpleValidator/Validators/Email.php similarity index 100% rename from src/vendor/SimpleValidator/Validators/Email.php rename to miniflux/vendor/SimpleValidator/Validators/Email.php diff --git a/src/vendor/SimpleValidator/Validators/Equals.php b/miniflux/vendor/SimpleValidator/Validators/Equals.php similarity index 100% rename from src/vendor/SimpleValidator/Validators/Equals.php rename to miniflux/vendor/SimpleValidator/Validators/Equals.php diff --git a/src/vendor/SimpleValidator/Validators/Integer.php b/miniflux/vendor/SimpleValidator/Validators/Integer.php similarity index 100% rename from src/vendor/SimpleValidator/Validators/Integer.php rename to miniflux/vendor/SimpleValidator/Validators/Integer.php diff --git a/src/vendor/SimpleValidator/Validators/Ip.php b/miniflux/vendor/SimpleValidator/Validators/Ip.php similarity index 100% rename from src/vendor/SimpleValidator/Validators/Ip.php rename to miniflux/vendor/SimpleValidator/Validators/Ip.php diff --git a/src/vendor/SimpleValidator/Validators/Length.php b/miniflux/vendor/SimpleValidator/Validators/Length.php similarity index 100% rename from src/vendor/SimpleValidator/Validators/Length.php rename to miniflux/vendor/SimpleValidator/Validators/Length.php diff --git a/src/vendor/SimpleValidator/Validators/MacAddress.php b/miniflux/vendor/SimpleValidator/Validators/MacAddress.php similarity index 100% rename from src/vendor/SimpleValidator/Validators/MacAddress.php rename to miniflux/vendor/SimpleValidator/Validators/MacAddress.php diff --git a/src/vendor/SimpleValidator/Validators/MaxLength.php b/miniflux/vendor/SimpleValidator/Validators/MaxLength.php similarity index 100% rename from src/vendor/SimpleValidator/Validators/MaxLength.php rename to miniflux/vendor/SimpleValidator/Validators/MaxLength.php diff --git a/src/vendor/SimpleValidator/Validators/MinLength.php b/miniflux/vendor/SimpleValidator/Validators/MinLength.php similarity index 100% rename from src/vendor/SimpleValidator/Validators/MinLength.php rename to miniflux/vendor/SimpleValidator/Validators/MinLength.php diff --git a/src/vendor/SimpleValidator/Validators/Numeric.php b/miniflux/vendor/SimpleValidator/Validators/Numeric.php similarity index 100% rename from src/vendor/SimpleValidator/Validators/Numeric.php rename to miniflux/vendor/SimpleValidator/Validators/Numeric.php diff --git a/src/vendor/SimpleValidator/Validators/Range.php b/miniflux/vendor/SimpleValidator/Validators/Range.php similarity index 100% rename from src/vendor/SimpleValidator/Validators/Range.php rename to miniflux/vendor/SimpleValidator/Validators/Range.php diff --git a/src/vendor/SimpleValidator/Validators/Required.php b/miniflux/vendor/SimpleValidator/Validators/Required.php similarity index 100% rename from src/vendor/SimpleValidator/Validators/Required.php rename to miniflux/vendor/SimpleValidator/Validators/Required.php diff --git a/src/vendor/SimpleValidator/Validators/Unique.php b/miniflux/vendor/SimpleValidator/Validators/Unique.php similarity index 100% rename from src/vendor/SimpleValidator/Validators/Unique.php rename to miniflux/vendor/SimpleValidator/Validators/Unique.php diff --git a/src/vendor/SimpleValidator/Validators/Version.php b/miniflux/vendor/SimpleValidator/Validators/Version.php similarity index 100% rename from src/vendor/SimpleValidator/Validators/Version.php rename to miniflux/vendor/SimpleValidator/Validators/Version.php diff --git a/screenshots/feeds.png b/screenshots/feeds.png deleted file mode 100644 index 1efccd7..0000000 Binary files a/screenshots/feeds.png and /dev/null differ diff --git a/screenshots/item.png b/screenshots/item.png deleted file mode 100644 index 7597166..0000000 Binary files a/screenshots/item.png and /dev/null differ diff --git a/screenshots/items.png b/screenshots/items.png deleted file mode 100644 index 3e46c65..0000000 Binary files a/screenshots/items.png and /dev/null differ