]> 91.132.146.200 Git - insipid.git/commitdiff
cleaning up for 2.2 release 2.0 2.2_2019-12-27
authorBanana <banana@mirage>
Fri, 27 Dec 2019 12:51:03 +0000 (13:51 +0100)
committerBanana <banana@mirage>
Fri, 27 Dec 2019 12:51:03 +0000 (13:51 +0100)
ChangeLog
TODO
VERSION
documentation/email-importer.txt
documentation/installation.txt
documentation/usage.txt
webroot/config.default.php
webroot/index.php
webroot/job/email-import.php
webroot/lib/simple-imap.class.php

index c32950fea8ee453d1438105c3957f75ed57f91e0..52a9ee7fd68f96eb1290c9ad579cb935c6905be8 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
-version 2.2 - Guardian of Ice - (tba)
-
-       * email import
-       * using mysql transactions if needed
-       * pagination
-       * authentication with an extra url now (index.php?m=auth)
-       * management actions shown only if authenticated
-       * small stats overview
-       * links can now be deleted
-       * awaiting moderation links can new be moderated
-       * clean up the local storage via stats page (if authenticated)
-       * Updated documentation
-       * INFO, WARN and ERROR now in the log files used for messages
-       * Fixed an error in create sql file
-       * Fixed info when a tag or category has no links
-       * Fixed code cleanups
-       * Fixed access to log files directory
-       * Fixed check for duplicates in email importer
+version 2.2 - Guardian of Ice - (2019-02-27)
+
+       + email import
+       + using mysql transactions if needed
+       + pagination
+       + authentication with an extra url now (index.php?m=auth)
+       + management actions shown only if authenticated
+       + small stats overview
+       + links can now be deleted
+       + awaiting moderation links can new be moderated
+       + clean up the local storage via stats page (if authenticated)
+       + Updated documentation
+       + INFO, WARN and ERROR now in the log files used for messages
+       + stats, storage usage. With stats and valid auth display moderation
+       + email import auto reply check
+       + flush local storage of images
+       + Fixed an error in create sql file
+       + Fixed info when a tag or category has no links
+       + Fixed code cleanups
+       + Fixed access to log files directory
+       + Fixed check for duplicates in email importer
 
 version 2.1alpha - Guardian of Fire - (2019-09-29)
 
-       * cleanups
-       * edit area for a bookmark
-       * documentation and sql setup cleanup
-       * new design with bulma.css (https://bulma.io/)
-       * added SEO information to "prevent" crawling and a robots.txt file
-       * new option to restrict access via http basic auth.
-       * very simple user authentication based on http basic auth.
+       + cleanups
+       + edit area for a bookmark
+       + documentation and sql setup cleanup
+       + new design with bulma.css (https://bulma.io/)
+       + added SEO information to "prevent" crawling and a robots.txt file
+       + new option to restrict access via http basic auth.
+       + very simple user authentication based on http basic auth.
                Needs improvement in further releases
-       * using mysql transactions
-       * working with new MySQL (5.7) version
-       * Image from parsed link info can now be stored
+       + using mysql transactions
+       + working with new MySQL (5.7) version
+       + Image from parsed link info can now be stored
 
 version 2.0alpha - Bright Crucible - (2017-01-05)
 
-       * This is a not prodction ready version of the complete rewrite.
-       * It is now written in PHP based on the idea from Luke Reeves
+       + This is a not prodction ready version of the complete rewrite.
+       + It is now written in PHP based on the idea from Luke Reeves
 
 version 1.5 (30 Nov. 2012)
 
-       * support phantomjs as a screenshot tool for a bookmark
-       * code updates and cleanup
+       + support phantomjs as a screenshot tool for a bookmark
+       + code updates and cleanup
 
 version 1.1 (20 Feb. 2012)
 
-       * older and newer link at the top no working
-       * bug with path to the jquery.js file
-       * some statistics
-       * options can be ordered now
-       * tool to check the bookmarks
+       + older and newer link at the top no working
+       + bug with path to the jquery.js file
+       + some statistics
+       + options can be ordered now
+       + tool to check the bookmarks
 
 version 1.0 (15. Feb 2012)
 
-       * jumpin.banana
-       * tag suggest was not working correctly.
-       * tag rename feature implemented
-       * tag rename case sensitive problem
-       * add bookmark only if url and title are not empty
-       * tag delete is available now. It moves the selected bookmarks
+       + jumpin.banana
+       + tag suggest was not working correctly.
+       + tag rename feature implemented
+       + tag rename case sensitive problem
+       + add bookmark only if url and title are not empty
+       + tag delete is available now. It moves the selected bookmarks
                to another one
-       * bookmarks without a tag can be selected now
-       * Fix the text/html content type going that's snapshotted
+       + bookmarks without a tag can be selected now
+       + Fix the text/html content type going that's snapshotted
                This is not needed. Since we use the charset info
                to determine utf, we need this information
-       * Insert SQL more save now
+       + Insert SQL more save now
 
 Tue Jul 14 21:38 EST 2009  Luke Reeve   <luke@neuro-tech.net>
 
-       * Fix the option "proxy_host" not being saved correctly.
+       + Fix the option "proxy_host" not being saved correctly.
 
 Sun Jul 12 11:00 EST 2009  Luke Reeves  <luke@neuro-tech.net>
 
-       * Fixed the Perl 5.10 module reloading bug.
-       * Fixed snapshotting functionality
+       + Fixed the Perl 5.10 module reloading bug.
+       + Fixed snapshotting functionality
 
 Sat Jul 11 23:30 EST 2009  Luke Reeves  <luke@neuro-tech.net>
 
-       * Dusted off the codebase, kicked the tires and finally
+       + Dusted off the codebase, kicked the tires and finally
          finished off the git migration.
 
 Mon Mar 27 18:59 EST 2006  Luke Reeves  <luke@neuro-tech.net>
 
-       * Added an option for disabling mod_rewrite support
-       * Added a prefix option for database tables
+       + Added an option for disabling mod_rewrite support
+       + Added a prefix option for database tables
 
 Tue Mar 21 19:34 EST 2006  Luke Reeves <luke@neuro-tech.net>
 
-       * Fix the export system
+       + Fix the export system
 
 Tue Feb 21 12:30 EST 2006  Luke Reeves  <luke@neuro-tech.net>
 
-       * Fix up database connectivity for newer PostgreSQL
+       + Fix up database connectivity for newer PostgreSQL
          libraries
-       * Incorporate patch from Paul Boin that allows importing
+       + Incorporate patch from Paul Boin that allows importing
          of regular del.icio.us backups (as opposed to only
          supporting exports as before)
 
 Mon Nov 21 12:41 EST 2005  Luke Reeves  <luke@neuro-tech.net>
 
-       * Fixed some of the cleanup process for snapshot deletion
-       * Added a "Fetch Related" function, so that the snapshot
+       + Fixed some of the cleanup process for snapshot deletion
+       + Added a "Fetch Related" function, so that the snapshot
          tool can grab related objects
-       * Work on the tag tools - delete and rename tags
+       + Work on the tag tools - delete and rename tags
 
 Fri Nov 04 09:00 EST 2005  Luke Reeves <luke@neuro-tech.net>
 
-       * Database fix (thanks to Jutta Horstmann)
-       * Remove export and import to server-side files, since the
+       + Database fix (thanks to Jutta Horstmann)
+       + Remove export and import to server-side files, since the
          standalone tools can easily accomplish that
 
 Fri Sep 23 07:35 EST 2005  Luke Reeves  <luke@neuro-tech.net>
 
-       * Enable taint mode for all the modules/scripts.
+       + Enable taint mode for all the modules/scripts.
 
 Thu Sep 22 12:15 EST 2005  Luke Reeves  <luke@neuro-tech.net>
 
-       * Remove dependency on App::Config, since all it does is
+       + Remove dependency on App::Config, since all it does is
          read a simple text file.
-       * Remove dependency on CGI::Session in lieu of a built-in
+       + Remove dependency on CGI::Session in lieu of a built-in
          session management system
-       * Fixed up database tables
+       + Fixed up database tables
 
 Mon Sep 19 20:37 EST 2005  Luke Reeves <luke@neuro-tech.net>
 
-       * Add the ability to drill-down into more details on cached
+       + Add the ability to drill-down into more details on cached
          objects.
-       * Fix up the standalone import and export tools.
-       * Show the correct total size of snapshots in the snapshot
+       + Fix up the standalone import and export tools.
+       + Show the correct total size of snapshots in the snapshot
          view.
 
 Fri Sep 16 21:02 EST 2005  Luke Reeves  <luke@neuro-tech.net>
 
-       * Move tools to a separate directory
-       * Add a standalone export script.
-       * Fix bugs in the export concerning character encoding.
+       + Move tools to a separate directory
+       + Add a standalone export script.
+       + Fix bugs in the export concerning character encoding.
 
 Fri Sep 16 12:30 EST 2005  Luke Reeves  <luke@neuro-tech.net>
 
-       * Fix a couple possible installation issues on PostgreSQL
+       + Fix a couple possible installation issues on PostgreSQL
          systems.
 
 Mon Sep 05 22:28 EST 2005  Luke Reeves  <luke@neuro-tech.net>
 
-       * Major code cleanup (splitting the main CGI file into multiple,
+       + Major code cleanup (splitting the main CGI file into multiple,
          more maintainable ones inside of the lib/Insipid directory)
-       * Bugfix for adding duplicate items not being flagged as such
+       + Bugfix for adding duplicate items not being flagged as such
 
 Tue Aug 09 22:05 EST 2005  Luke Reeves  <luke@neuro-tech.net>
 
-       * Added proxy support for fetching pages
-       * Fix blob size for MySQL tables
-       * Added a toggle to not redirect when a mark is added
-       * Added a toggle to snapshot a page when bookmarked
-       * Support passing the Referer header when snapshotting a page.
-       * Added support for If-Modified-Since requests to cached objects.
-       * Added a Last-Modified header for cache objects.
+       + Added proxy support for fetching pages
+       + Fix blob size for MySQL tables
+       + Added a toggle to not redirect when a mark is added
+       + Added a toggle to snapshot a page when bookmarked
+       + Support passing the Referer header when snapshotting a page.
+       + Added support for If-Modified-Since requests to cached objects.
+       + Added a Last-Modified header for cache objects.
 
 Thu Jul 21 21:35 EST 2005  Luke Reeves  <luke@neuro-tech.net>
 
-       * Fix a bunch of errors concerning PostgreSQL and the snapshots,
+       + Fix a bunch of errors concerning PostgreSQL and the snapshots,
          as well as other bug fixes.
 
 Sun Jul 17 15:19 EST 2005  Luke Reeves  <luke@neuro-tech.net>
 
-       * Added the page cache feature, so a user can take snapshots of pages
+       + Added the page cache feature, so a user can take snapshots of pages
          that have been bookmarked.
 
 Tue Jul 05 21:58 EST 2005  Luke Reeves  <luke@neuro-tech.net>
 
-       * Added addition of tags (like Documentation + Java) to get
+       + Added addition of tags (like Documentation + Java) to get
          intersections of bookmarks.
 
 Fri May 27 11:05 JST 2005  Luke Reeves  <luke@neuro-tech.net>
 
-       * Added postgresql backend support (submitted by Stephen Patterson)
+       + Added postgresql backend support (submitted by Stephen Patterson)
 
 Mon Apr 25 21:00 EST 2005  Luke Reeves  <luke@neuro-tech.net>
 
-       * Add a search box, with the option of showing it to non-logged in
+       + Add a search box, with the option of showing it to non-logged in
          users.
diff --git a/TODO b/TODO
index e0d988b06b92c18b4ca4bf373f25043fea52a214..92808adc367b020cc29b8c8d05ce6637d8c94674 100755 (executable)
--- a/TODO
+++ b/TODO
@@ -1,8 +1,5 @@
 TODO / Feature list
-==========================================================================
-+ stats, storage usage. With stats and valid auth display moderation
-+ email import auto reply check
-+ flush local storage of images
++ improved documentation
 + delete single local storage of a link
 + sorting
 + snapshots
diff --git a/VERSION b/VERSION
index 8d9021d5394fe63993f6add01e6162268b69f851..d95cf2166811e32fffad46343378adf80f1699ba 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.2alpha - Guardian of Ice
+2.2 - Guardian of Ice
index e22c3321cca1731243a9a54fcd78a2ddfb5c3cfa..c13f0afda54e790b066ea71af3d13a683ada1b58 100644 (file)
@@ -15,10 +15,11 @@ Here are the important configs:
 EMAIL_SERVER => Address of your E-Mail server
 EMAIL_SERVER_PORT_IMAP => The SSL Imap port. Default: 993
 EMAIL_SERVER_MAILBOX => The name of your Inbox. Default: INBOX
+EMAIL_ARCHIVE_FOLDER => The name of the archive folder in which the processed emails will be moved
 
 EMAIL_REPORT_BACK => set this to true if you want to report to the sender. Default: false
 EMAIL_SERVER_PORT_SMTP => The SSL SMTP port for using the report back function. Default: 465
-EMAIL_REPLY_BACK_VALID => Multiple E-Mails addresses which can be reported back to.
+EMAIL_REPLY_BACK_VALID => Multiple E-Mails addresses which can be reported back to. RFC822-style comma-separated email addresses
 EMAIL_REPLY_BACK_ADDRESS => The E-Mail address which sends the report mail. Usually the address from which your read the mails
 
 
index 0ab884b25efdd7551d936dc221984ceaba5696f6..28cb3cb4ca704c98f3fd556ed9bb3bf638d1d23d 100644 (file)
@@ -42,3 +42,6 @@ LOCAL_STORAGE is the option in the config file.
 
 9.
 If you want to fully restrict your contents activate the user/password restriction in the config.
+
+10.
+If you want to use the e-mail importer read the email-importer.txt file.
index 1939ee5173b656937ae6a75469b823465e68678e..52e2d76219e3f8ca21346d87221e2075f6546e39 100644 (file)
@@ -9,6 +9,7 @@ Call the following URL to trigger the authentication:
 http(s)://your.domain.tld/path/to/insipid/index.php?m=auth
 
 If successful you can now manage your items. Edit buttons are visible now.
+Moderation and more overview can be access from the stats overview page.
 
 HowToAdd a new link:
 
index aae4a1993c676a7b30e06b0bf2416e21eb1bd8b3..60928925e55066d051265a6eaa8166f9a00a5b58 100644 (file)
@@ -59,6 +59,7 @@ define('EMAIL_SERVER_PORT_IMAP',993);
 define('EMAIL_SERVER_PORT_SMTP',465);
 define('EMAIL_SERVER_MAILBOX','INBOX'); # default INBOX
 define('EMAIL_MARKER','to-insipid- ');
+define('EMAIL_ARCHIVE_FOLDER','archive');
 define('EMAIL_REPORT_BACK',false);
 define('EMAIL_REPLY_BACK_VALID','');
 define('EMAIL_REPLY_BACK_ADDRESS','');
index 41503346ccb105474ae9ffc6dbcff5b4d3ea3b89..7a3013c36b278ae353d48e24b4677d4af7cbf62a 100644 (file)
@@ -32,7 +32,7 @@ ini_set('error_reporting',-1); // E_ALL & E_STRICT
 # time settings
 date_default_timezone_set('Europe/Berlin');
 
-define('DEBUG',true);
+define('DEBUG',false);
 
 ## check request
 $_urlToParse = filter_var($_SERVER['QUERY_STRING'],FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
index b090ce6bffd2e9027043764e7c05270f4f6f7ca5..8c689888838eb75a1551761f3c125fc3d3f902da 100644 (file)
@@ -3,7 +3,7 @@
  * Insipid
  * Personal web-bookmark-system
  *
- * Copyright 2016-2017 Johannes Keßler
+ * Copyright 2016-2019 Johannes Keßler
  *
  * Development starting from 2011: Johannes Keßler
  * https://www.bananas-playground.net/projekt/insipid/
@@ -32,7 +32,7 @@ ini_set('error_reporting',-1); // E_ALL & E_STRICT
 # time settings
 date_default_timezone_set('Europe/Berlin');
 
-define('DEBUG',true);
+define('DEBUG',false);
 
 ## set the error reporting
 ini_set('log_errors',true);
@@ -170,7 +170,7 @@ if(!empty($emails)) {
                                        }
                                }
                                else {
-                                       error_log("WARN No valid title for link found: ".var_export($newdata,true));
+                                       error_log("WARN No valid title for link found: ".$newdata['link']);
                                        if(DEBUG === true) var_dump("WARN No valid title for link found: ".var_export($newdata,true));
                                        array_push($invalidProcessedEmails, $emailData);
                                        continue;
@@ -208,7 +208,7 @@ if(!empty($emails)) {
                             'image' => $newdata['image']
                         ), true);
                     } catch (Exception $e) {
-                        $_m = "WARN Can not create new link into DB. Duplicate? " . $e->getMessage();
+                        $_m = "WARN Can not create new link into DB." . $e->getMessage();
                         error_log($_m);
                         $emailData['importmessage'] = $_m;
                         array_push($invalidProcessedEmails, $emailData);
@@ -246,7 +246,7 @@ if(!empty($emails)) {
                                }
                                else {
                                        $DB->rollback();
-                                       error_log("ERROR Link could not be added. SQL problem: ".$newdata['link']);
+                                       error_log("ERROR Link could not be added. SQL problem? ".$newdata['link']);
                                        $emailData['importmessage'] = "Link could not be added";
                                        array_push($invalidProcessedEmails,$emailData);
                                }
@@ -277,14 +277,13 @@ if(!empty($invalidProcessedEmails)) {
 }
 
 # move them to the processed / archive folder
-#$EmailReader->move()
 if(!empty($validProcessedEmails)) {
        error_log("INFO We have valid import messages.");
        foreach ($validProcessedEmails as $validMail) {
+           $EmailReader->moveMessage($validMail['uid']);
+        error_log("INFO Mail moved to archive ".$validMail['header_rfc822']->subject);
        }
 }
 
-
-
 $DB->close();
-# END
+$EmailReader->close();
index 47bb627acfc6331bd295e21679fde5e3d00c227a..a6ee6f2f0bf57e9eb44ad354c73d04bae911f47c 100644 (file)
@@ -103,7 +103,8 @@ class SimpleImap {
                                        $ret[$i]['header'] = $this->emailHeaders($i);
                                        $ret[$i]['header_rfc822'] = $this->emailHeaders_rfc822($i);
                                        $ret[$i]['header_array'] = $this->emailHeadersAsArray($i);
-                                       $ret[$i]['emailid'] = $i;
+                                       # @see https://www.php.net/manual/en/function.imap-uid.php
+                    $ret[$i]['uid'] = imap_uid($this->_connection,$i);
                    }
                }
            }
@@ -176,6 +177,19 @@ class SimpleImap {
                return array_combine( $matches[1], $matches[2]);
        }
 
+    /**
+     * Move given message to given folder
+     * @param $messageUid This is the message Uid as an int
+     * @param string $folder This is the target folder. Default is EMAIL_ARCHIVE_FOLDER
+     */
+       public function moveMessage($messageUid,$folder=EMAIL_ARCHIVE_FOLDER) {
+           if(!empty($messageUid) && !empty($folder)) {
+               $messageUid = (string)$messageUid;
+               imap_setflag_full($this->_connection,$messageUid,"\SEEN", ST_UID);
+            imap_mail_move($this->_connection, $messageUid, $folder,CP_UID);
+            imap_expunge($this->_connection);
+        }
+    }
 
        /**
         * extract the subject from the email headers and decode
@@ -247,32 +261,6 @@ class SimpleImap {
            return $ret;
        }
 
-       /*
-
-       // move the message to a new folder
-       function move($msg_index, $folder='INBOX.Processed') {
-               // move on server
-               imap_mail_move($this->_connection, $msg_index, $folder);
-               imap_expunge($this->_connection);
-
-               // re-read the inbox
-               $this->inbox();
-       }
-
-       // get a specific message (1 = first email, 2 = second email, etc.)
-       function get($msg_index=NULL) {
-               if (count($this->_inbox) <= 0) {
-                       return array();
-               }
-               elseif ( ! is_null($msg_index) && isset($this->_inbox[$msg_index])) {
-                       return $this->_inbox[$msg_index];
-               }
-
-               return $this->_inbox[0];
-       }
-*/
-
-
        /**
         * close the imap connection
         */