from pelican import signals

import logging
import os
import time


logger = logging.getLogger(__name__)


def touch_file(path, context):
    content = context.get('article', context.get('page'))
    if content and hasattr(content, 'date'):
        mtime = time.mktime(content.date.timetuple())
        logger.info('touching %s', path)
        os.utime(path, (mtime, mtime))


def register():
    signals.content_written.connect(touch_file)

from pelican import signals

import logging
import os
import time


logger = logging.getLogger(__name__)


def set_file_utime(path, datetime):
    mtime = time.mktime(datetime.timetuple())
    logger.info('touching %s', path)
    os.utime(path, (mtime, mtime))


def touch_file(path, context):
    content = context.get('article', context.get('page'))
    page = context.get('articles_page')
    dates = context.get('dates')

    if content and hasattr(content, 'date'):
        set_file_utime(path, content.date)
    elif page:
        set_file_utime(path, max(x.date for x in page.object_list))
    elif dates:
        set_file_utime(path, max(x.date for x in dates))


def register():
    signals.content_written.connect(touch_file)

Make touch plugin touch files with lists
Make touch plugin touch files with lists

  from pelican import signals
  
  import logging
  import os
  import time
  
  
  logger = logging.getLogger(__name__)
  
  
+ def set_file_utime(path, datetime):
+     mtime = time.mktime(datetime.timetuple())
+     logger.info('touching %s', path)
+     os.utime(path, (mtime, mtime))
+ 
+ 
  def touch_file(path, context):
      content = context.get('article', context.get('page'))
+     page = context.get('articles_page')
+     dates = context.get('dates')
+ 
      if content and hasattr(content, 'date'):
-         mtime = time.mktime(content.date.timetuple())
-         logger.info('touching %s', path)
-         os.utime(path, (mtime, mtime))
+         set_file_utime(path, content.date)
+     elif page:
+         set_file_utime(path, max(x.date for x in page.object_list))
+     elif dates:
+         set_file_utime(path, max(x.date for x in dates))
  
  
  def register():
      signals.content_written.connect(touch_file)
  
Make touch plugin touch files with lists
## Code Before:
from pelican import signals

import logging
import os
import time


logger = logging.getLogger(__name__)


def touch_file(path, context):
    content = context.get('article', context.get('page'))
    if content and hasattr(content, 'date'):
        mtime = time.mktime(content.date.timetuple())
        logger.info('touching %s', path)
        os.utime(path, (mtime, mtime))


def register():
    signals.content_written.connect(touch_file)

## Instruction:
Make touch plugin touch files with lists
## Code After:
from pelican import signals

import logging
import os
import time


logger = logging.getLogger(__name__)


def set_file_utime(path, datetime):
    mtime = time.mktime(datetime.timetuple())
    logger.info('touching %s', path)
    os.utime(path, (mtime, mtime))


def touch_file(path, context):
    content = context.get('article', context.get('page'))
    page = context.get('articles_page')
    dates = context.get('dates')

    if content and hasattr(content, 'date'):
        set_file_utime(path, content.date)
    elif page:
        set_file_utime(path, max(x.date for x in page.object_list))
    elif dates:
        set_file_utime(path, max(x.date for x in dates))


def register():
    signals.content_written.connect(touch_file)
