forgot to change the module in the module folder ;-)
authorSabine Engelhardt (Becker) <frosch@atari-frosch.de>
Sat, 16 Nov 2019 20:21:45 +0000 (21:21 +0100)
committerSabine Engelhardt (Becker) <frosch@atari-frosch.de>
Sat, 16 Nov 2019 20:21:45 +0000 (21:21 +0100)
modules/randomphoto-piwigo.py

index 486923e..24ecf7e 100755 (executable)
@@ -6,12 +6,13 @@ from sys import argv
 
 
 def fetchalbumname(cursor, album):
-    private = false
+    private = False
     getalbumname = "SELECT name, id_uppercat, status FROM pwg_categories WHERE id = " + str(album)
     cursor.execute(getalbumname)
     albumdata = cursor.fetchone()
     albumname = albumdata[0]
     upper = albumdata[1]
+    status = albumdata[2]
     if status == 'private':
         private = True
     return albumname, upper, private
@@ -114,18 +115,6 @@ def randomphoto(piwigoconfig, basewidth, baseheight, randompiclog, piwigosite, r
                 pictimestamp = "am " + pictime.strftime("%d.%m.%Y")
             else:
                 pictimestamp = "am " + pictime.strftime("%d.%m.%Y") + " um " + pictime.strftime("%H:%M") + " Uhr"
-
-        '''
-        # This part only works if your photo filenames stored in Piwigo are
-        # in the following format:
-        # fff-nn-yyyymm.jpg
-        # fff  = film no. (or any other data)
-        # nn   = negative/slide no. (or any other data)
-        # The important thing is that the parts are separated by '-'
-        #  and the year and month are the third part and not separated:
-        # yyyy = in which year the photo has been taken
-        # mm   = in which month the photo has been taken
-
         elif origfile.count("-") == 2:
             origfile = origfile.replace(".jpg", "")
             origfileparts = origfile.split("-")
@@ -160,7 +149,6 @@ def randomphoto(piwigoconfig, basewidth, baseheight, randompiclog, piwigosite, r
                 else:
                     filemonth = ""
                 pictimestamp = "im " + filemonth + " " + origfileyear
-        '''
         else:
             pictimestamp = ""
         picdata['phototime'] = pictimestamp
@@ -209,7 +197,7 @@ def randomphoto(piwigoconfig, basewidth, baseheight, randompiclog, piwigosite, r
                 while upper != None:
                     db = pymysql.connect(dbhost, dbuser, dbpass, dbname)
                     cursor = db.cursor()
-                    a, upper = fetchalbumname(cursor, upper, private)
+                    a, upper, private = fetchalbumname(cursor, upper)
                     db.close()
                     if not private:
                         albumname = str(a) + " / " + albumname
@@ -217,22 +205,16 @@ def randomphoto(piwigoconfig, basewidth, baseheight, randompiclog, piwigosite, r
                         continue
                 piwigoalbums.append('<li><a href="' + albumlink + '">' + albumname + '</a></li>')
 
-        getlicense = "SELECT COALESCE(cr_id, 0) FROM pwg_copyrights_media WHERE media_id = " + str(photo)
+        getlicense = "SELECT cr_id FROM pwg_copyrights_media WHERE media_id = " + str(photo)
         db = pymysql.connect(dbhost, dbuser, dbpass, dbname)
         cursor = db.cursor()
         cursor.execute(getlicense)
         l = cursor.fetchone()
         db.close()
 
-        '''
-        There is still a bug if cr_id is NULL, it seems that COALESCE does
-        not work here! If cr_id is NULL, the script breaks; the page shows
-        the next photo, but with the data of the last one!
-        '''
-    
-        logging.debug('License code is %s.', l[0])
-        if l[0] == 0:
-            licensename = "keine freie Lizenz"
+        logging.debug('License code for %s is %s.', photo, l)
+        if l == None:
+            licensename = "All rights reserved."
         elif l[0] == 1:
             licensename = "CC-BY"
         elif l[0] == 2:
@@ -245,6 +227,8 @@ def randomphoto(piwigoconfig, basewidth, baseheight, randompiclog, piwigosite, r
             licensename = "CC-BY-NC-SA"
         elif l[0] == 6:
             licensename = "CC-BY-NC-ND"
+        else:
+            licensename = "unknown"
 
         curtime = datetime.now()
         logtime = curtime.strftime("%b %d %H:%M:%S")
@@ -274,19 +258,20 @@ def randomphoto(piwigoconfig, basewidth, baseheight, randompiclog, piwigosite, r
         from subprocess import call
         contentfile = myfilename.replace(".py", ".htm")
         call(["touch", contentfile])
+        logging.debug('Content file touched.')
 
     return snipcontent
 
 ###
 
-# Include your own page data here.
+# Include page configuration here
 
 piwigoconfig = "$piwigopath/local/config/database.inc.php"
 # target width of photos in landscape format
 basewidth = 600
 # target height of photos in portrait format
 baseheight = 600
-pictargetfile = "/srv/$yoursite/randompic.jpg"
+pictargetfile = "$websitepath/randompic.jpg"
 randompiclog = "$htmlgluepath/htmlglue/random.log"
 piwigosite = "https://$yourpiwigosite/"