Пример #1
0
 def __call__(self):
     # Bug clock server CSRF fix plone.protect 3
     alsoProvides(self.request, IDisableCSRFProtection)
     socket.setdefaulttimeout(20)
     # Items erstellen gemaess Blog-Feed
     self.update()
     # Tag fuer Startseite an neusten Post vergeben; vorher Tag allen Posts nehmen
     if not self.context.id in self.feedStartseite:
         message = _('Der Feed wurde aktualisiert.')
         messages = IStatusMessage(self.request, alternate=None)
         if messages is not None:
             messages.addStatusMessage(message, 'info')
         return self.request.response.redirect(self.context.absolute_url())
     
     folder_path = '/'.join(self.context.getPhysicalPath())
     catalog = getToolByName(self.context, 'portal_catalog')
     items = catalog(path={'query': folder_path}, # , 'depth': 1
         portal_type='FeedFeederItem', sort_on="getFeedItemUpdated", sort_order="reverse")
     # Startseiten-Tag entfernen (alle Items)
     for item in items:
         feeditem = item.getObject()
         # print feeditem.id, feeditem.title_or_id(), item.getFeedItemUpdated
         sbj = feeditem.Subject()
         if TAG_STARTSEITE in sbj:  
             piep = set(sbj)
             piep.remove(TAG_STARTSEITE)
             feeditem.setSubject(list(piep))
             feeditem.reindexObject()
     # Startseiten-Tag dem ersten Item geben         
     message = _('Feed wurde aktualisiert.')
     if items:
         firstitem = items[0]
         # print "firstitem", firstitem.id, firstitem.Title
         feeditem = firstitem.getObject()
         
         # imageurl = getFeedItemsImageUrl(feeditem)
         if self.context.feeds:
             blogurl = self.context.feeds[0]
             try:
                 # req = urllib2.Request(blogurl)
                 # req.add_header('User-Agent', USER_AGENT)
                 # urllib2.urlopen(req)
                 r = requests.get(blogurl, timeout=5)
                 sbj = set(feeditem.Subject())
                 sbj.update((TAG_STARTSEITE,))
                 feeditem.setSubject(list(sbj))
                 feeditem.reindexObject()                
                 message = _('Feed wurde aktualisiert.')
             except Exception, e:
                 logger.error(str(e))
                 message = _('Feed ist nicht erreichbar. ') + blogurl
                 logger.error(message)
Пример #2
0
 def __call__(self):
     self.update()
     message = _('Feed items updated')
     messages = IStatusMessage(self.request, alternate=None)
     if messages is not None:
         messages.addStatusMessage(message, 'info')
     self.request.response.redirect(self.context.absolute_url())
Пример #3
0
 def __call__(self):
     self.update()
     message = _('Feed items updated')
     messages = IStatusMessage(self.request, alternate=None)
     if messages is not None:
         messages.addStatusMessage(message, 'info')
     self.request.response.redirect(self.context.absolute_url())
Пример #4
0
 def addItem(self, id):
     """
     """
     self.invokeFactory('FeedFeederItem', id)
     transition = self.getDefaultTransition()
     if transition != '':
         wf_tool = getToolByName(self, 'portal_workflow')
         wf_tool.doActionFor(self[id], transition,
             comment=_('Automatic transition triggered by FeedFolder'))
     return self[id]
Пример #5
0
 def addItem(self, id):
     """
     """
     self.invokeFactory('FeedFeederItem', id)
     transition = self.getDefaultTransition()
     if transition != '':
         wf_tool = getToolByName(self, 'portal_workflow')
         wf_tool.doActionFor(
             self[id],
             transition,
             comment=_('Automatic transition triggered by FeedFolder'))
     return self[id]
Пример #6
0
 def getAvailableTransitions(self):
     # Create a temporary object so we can ask what transitions are
     # available for it.
     id = 'temp_zest_temp'
     self.invokeFactory('FeedFeederItem', id)
     wf_tool = getToolByName(self, 'portal_workflow')
     transitions = wf_tool.getTransitionsFor(self[id])
     display_trans = [('', _('Keep initial state')), ]
     for trans in transitions:
         display_trans.append((trans['id'], trans['name']))
     # Unindex and remove the temporary object
     self[id].unindexObject()
     self._delOb(id)
     return DisplayList(display_trans)
Пример #7
0
 def getAvailableTransitions(self):
     # Create a temporary object so we can ask what transitions are
     # available for it.
     id = 'temp_zest_temp'
     self.invokeFactory('FeedFeederItem', id)
     wf_tool = getToolByName(self, 'portal_workflow')
     transitions = wf_tool.getTransitionsFor(self[id])
     display_trans = [
         ('', _('Keep initial state')),
     ]
     for trans in transitions:
         display_trans.append((trans['id'], trans['name']))
     # Unindex and remove the temporary object
     self[id].unindexObject()
     self._delOb(id)
     return DisplayList(display_trans)
Пример #8
0
 def addEnclosure(self, id):
     """
     """
     self.invokeFactory('File', id)
     self.reindexObject()
     transition = self.getDefaultTransition()
     if transition != '':
         wf_tool = getToolByName(self, 'portal_workflow')
         # The default transition should be valid for a
         # FeedFolderItem, but our File might not have the same
         # transitions available.  So check this.
         transitions = wf_tool.getTransitionsFor(self[id])
         transition_ids = [trans['id'] for trans in transitions]
         if transition in transition_ids:
             wf_tool.doActionFor(self[id], transition,
             comment=_('Automatic transition triggered by FeedFolder'))
     return self[id]
Пример #9
0
 def addEnclosure(self, id):
     """
     """
     self.invokeFactory('File', id)
     self.reindexObject()
     transition = self.getDefaultTransition()
     if transition != '':
         wf_tool = getToolByName(self, 'portal_workflow')
         # The default transition should be valid for a
         # FeedFolderItem, but our File might not have the same
         # transitions available.  So check this.
         transitions = wf_tool.getTransitionsFor(self[id])
         transition_ids = [trans['id'] for trans in transitions]
         if transition in transition_ids:
             wf_tool.doActionFor(self[id], transition,
             comment=_('Automatic transition triggered by FeedFolder'))
     return self[id]
Пример #10
0
 def __call__(self):
     self.update()
     # Tag fuer Startseite an neusten Post vergeben; vorher Tag allen Posts nehmen
     # logger.info("Tags von Posts entfernen")
     catalog = getToolByName(self.context, 'portal_catalog')
     items = catalog(
         portal_type='FeedFeederItem', sort_on="effective", sort_order="reverse")
     for item in items:
         feeditem = item.getObject()
         sbj = feeditem.Subject()
         # print feeditem
         if TAG_STARTSEITE in sbj:  
             piep = set(sbj)
             piep.remove(TAG_STARTSEITE)
             feeditem.setSubject(list(piep))
             feeditem.reindexObject()
             # print str(feeditem), "cleaned"
     if items:
         firstitem = items[0]
         feeditem = firstitem.getObject()
         sbj = set(feeditem.Subject())
         sbj.update((TAG_STARTSEITE,))
         feeditem.setSubject(list(sbj))
         feeditem.reindexObject()
         # print "newest FeedItem:", str(feeditem), str(sbj)
     
     
     
     
     
     # Rest wie in feedfeeder
     message = _('Feed items updated')
     messages = IStatusMessage(self.request, alternate=None)
     if messages is not None:
         messages.addStatusMessage(message, 'info')
     self.request.response.redirect(self.context.absolute_url())
Пример #11
0
from Products.Archetypes.atapi import *
from zope import interface
from Products.ATContentTypes.content.folder import ATBTreeFolder
from Products.CMFCore.utils import getToolByName

from Products.feedfeeder.interfaces.container import IFeedsContainer
from Products.feedfeeder.config import PROJECTNAME
from Products.feedfeeder import _

schema = Schema((

    LinesField(
        name='feeds',
        widget=LinesWidget(
            description=_("help_feeds",
                          default="List of rss feeds. You can prefix feed link titles using | separator. "
                          "It is probably a good idea to add a colon or dash at the end of the prefix ('My place: |http://myplace/feed')."),
            label=_('feedfeeder_label_feeds', default='Feeds')
        )
    ),

    BooleanField(
        name='redirect',
        widget=BooleanWidget(
            description=_("help_redirect", default="If checked the feed item will be automatically redirected if you don't have the edit permission."),
            label=_('label_redirect', default='Automatic redirect of feed items')
        )
    ),

    StringField(
        name='defaultTransition',
Пример #12
0
from AccessControl import ClassSecurityInfo
from Products.Archetypes.atapi import *
from zope import interface
from Products.ATContentTypes.content.folder import ATBTreeFolder
from Products.CMFCore.utils import getToolByName

from Products.feedfeeder.interfaces.container import IFeedsContainer
from Products.feedfeeder.config import PROJECTNAME
from Products.feedfeeder import _

schema = Schema((
    LinesField(
        name='feeds',
        widget=LinesWidget(description=_(
            "help_feeds",
            default=
            "List of rss feeds. You can prefix feed link titles using | separator. "
            "It is probably a good idea to add a colon or dash at the end of the prefix ('My place: |http://myplace/feed')."
        ),
                           label=_('feedfeeder_label_feeds',
                                   default='Feeds'))),
    BooleanField(
        name='redirect',
        widget=BooleanWidget(description=_(
            "help_redirect",
            default=
            "If checked the feed item will be automatically redirected if you don't have the edit permission."
        ),
                             label=_(
                                 'label_redirect',
                                 default='Automatic redirect of feed items'))),
    StringField(
Пример #13
0
from Products.feedfeeder.interfaces.item import IFeedItem
from Products.feedfeeder.config import PROJECTNAME

from Products.feedfeeder import _


copied_fields = {}
copied_fields['text'] = ATDocument.schema['text'].copy()
copied_fields['text'].required = 0
schema = Schema((

    StringField(
        name='feedItemAuthor',
        widget=StringWidget(
            label=_('feedfeeder_label_feedItemAuthor', default='Feeditemauthor'),
        )
    ),

    DateTimeField(
        name='feedItemUpdated',
        default=DateTime('2000/01/01'),
        widget=CalendarWidget(
            label=_('feedfeeder_label_feedItemUpdated', 'Feeditemupdated'),
        )
    ),

    copied_fields['text'],
    StringField(
        name='link',
        widget=StringWidget(
Пример #14
0
from Products.CMFPlone.utils import base_hasattr
from zope import interface

from Products.feedfeeder.interfaces.item import IFeedItem
from Products.feedfeeder.config import PROJECTNAME

from Products.feedfeeder import _

copied_fields = {}
copied_fields['text'] = ATDocument.schema['text'].copy()
copied_fields['text'].required = 0
schema = Schema(
    (
        StringField(name='feedItemAuthor',
                    widget=StringWidget(label=_(
                        'feedfeeder_label_feedItemAuthor',
                        default='Feeditemauthor'), )),
        DateTimeField(name='feedItemUpdated',
                      default=DateTime('2000/01/01'),
                      widget=CalendarWidget(label=_(
                          'feedfeeder_label_feedItemUpdated',
                          'Feeditemupdated'), )),
        copied_fields['text'],
        StringField(name='link',
                    widget=StringWidget(label=_('feedfeeder_label_link',
                                                default='Link'), )),
        ComputedField(name='objectids',
                      widget=ComputedWidget(
                          label=_('feedfeeder_label_objectids',
                                  default='Object Ids'), )),
        ComputedField(name='hasBody',
Пример #15
0
from Products.feedfeeder.interfaces.item import IFeedItem
from Products.feedfeeder.config import PROJECTNAME

from Products.feedfeeder import _


copied_fields = {}
copied_fields['text'] = ATDocument.schema['text'].copy()
copied_fields['text'].required = 0
schema = Schema((

    StringField(
        name='feedItemAuthor',
        widget=StringWidget(
            label=_('feedfeeder_label_feedItemAuthor', default='Feeditemauthor'),
        )
    ),

    DateTimeField(
        name='feedItemUpdated',
        default=DateTime('2000/01/01'),
        widget=CalendarWidget(
            label=_('feedfeeder_label_feedItemUpdated', 'Feeditemupdated'),
        )
    ),

    copied_fields['text'],
    StringField(
        name='link',
        widget=StringWidget(
Пример #16
0
from AccessControl import ClassSecurityInfo
from Products.Archetypes.atapi import *
from zope import interface
from Products.ATContentTypes.content.folder import ATBTreeFolder
from Products.CMFCore.utils import getToolByName

from Products.feedfeeder.interfaces.container import IFeedsContainer
from Products.feedfeeder.config import PROJECTNAME
from Products.feedfeeder import _

schema = Schema((

    LinesField(
        name='feeds',
        widget=LinesWidget(
            label=_('feedfeeder_label_feeds', default='Feeds')
        )
    ),

    BooleanField(
        name='redirect',
        widget=BooleanWidget(
            description=_("help_redirect", default="If checked the feed item will be automatically redirected if you don't have the edit permission."),
            label=_('label_redirect', default='Automatic redirect of feed items')
        )
    ),

    StringField(
        name='defaultTransition',
        vocabulary='getAvailableTransitions',
        widget=SelectionWidget(