Exemple #1
0
 def setStatus(self, id, s):
     ele = Element.get(Element.id == id)
     ele.status = common.getStatusByID(int(s))
     ele.save()
     if ele.status == common.WANTED:
         tasks.searchElement(ele)
     self.redirect('/')
Exemple #2
0
 def setStatus(self, id, s):
     ele = Element.get(Element.id == id)
     ele.status = common.getStatusByID(int(s))
     ele.save()
     if ele.status == common.WANTED:
         tasks.searchElement(ele)
     self.redirect('/')
Exemple #3
0
def runMediaAdder():
    for adder in common.PM.MA:
        medias = adder.runShedule()
        successfulAdd = []
        for media in medias:
            # print '######'
            # print media.mediaTypeIdentifier
            # print media.externalID
            # print media.name
            mtm = common.PM.getMediaTypeManager(media.mediaTypeIdentifier)[0]
            try:
                new_e = Element.getWhereField(mtm.mt, media.elementType, {'id': media.externalID}, media.providerTag, mtm.root)
            except Element.DoesNotExist:
                pass
            else:
                log(u'We already have %s' % new_e)
                successfulAdd.append(media)
                continue
            for provider in common.PM.getProvider(runFor=mtm):
                log.info(u'%s is looking for %s(%s) on %s' % (adder, media.name, media.externalID, provider))
                ele = provider.getElement(media.externalID)
                if ele:
                    log.info(u'we found %s. now lets gets real' % ele)
                    new_status = common.getStatusByID(ele.manager.c.automatic_new_status_select)
                    if ele.manager.makeReal(ele, new_status):
                        createGenericEvent(ele, u'autoAdd', 'I was added by %s' % adder)
                        common.MM.createInfo(u'%s added %s' % (adder, ele.getName()))
                        if media not in successfulAdd:
                            successfulAdd.append(media)
                            if new_status == common.WANTED:
                                t = TaskThread(runSearcherForMediaType, ele.manager, ele)
                                t.start()
                else:
                    log.info(u'%s did not find %s(%s)' % (provider, media.name, media.externalID))
        adder.successfulAdd(successfulAdd)
Exemple #4
0
 def addElement(self, id):
     element = Element.get(Element.id == id)
     status = common.getStatusByID(element.manager.c.default_new_status_select)
     element.manager.makeReal(element, status)
     if status == common.WANTED:
         t = tasks.TaskThread(tasks.searchElement, element)
         t.start()
     return json.dumps({'result': True, 'data': {}, 'msg': '%s added.' % element.getName()})
Exemple #5
0
 def makePermanent(self, id):
     element = Element.get(Element.id == id)
     status = common.getStatusByID(element.manager.c.default_new_status_select)
     element.manager.makeReal(element, status)
     if status == common.WANTED:
         t = tasks.TaskThread(tasks.searchElement, element)
         t.start()
     self.redirect('/')
Exemple #6
0
 def addElement(self, id):
     element = Element.get(Element.id == id)
     status = common.getStatusByID(element.manager.c.default_new_status_select)
     element.manager.makeReal(element, status)
     if status == common.WANTED:
         t = tasks.TaskThread(tasks.searchElement, element)
         t.start()
     return json.dumps({'result': True, 'data': {}, 'msg': '%s added.' % element.getName()})
Exemple #7
0
 def makePermanent(self, id):
     element = Element.get(Element.id == id)
     status = common.getStatusByID(
         element.manager.c.default_new_status_select)
     element.manager.makeReal(element, status)
     if status == common.WANTED:
         t = tasks.TaskThread(tasks.searchElement, element)
         t.start()
     self.redirect('/')
Exemple #8
0
def runMediaAdder():
    for adder in common.PM.MA:
        medias = adder.runShedule()
        successfulAdd = []
        for media in medias:
            # print '######'
            # print media.mediaTypeIdentifier
            # print media.externalID
            # print media.name
            mtm = common.PM.getMediaTypeManager(media.mediaTypeIdentifier)[0]
            try:
                new_e = Element.getWhereField(mtm.mt, media.elementType, {'id': media.externalID}, media.providerTag, mtm.root)
            except Element.DoesNotExist:
                pass
            else:
                log(u'We already have %s' % new_e)
                media.root = new_e
                successfulAdd.append(media)
                continue
            for provider in common.PM.getProvider(runFor=mtm):
                log.info(u'%s is looking for %s(%s:%s) on %s' % (adder, media.name, media.providerTag, media.externalID, provider))
                ele = provider.getElement(media.externalID, tag=media.providerTag)

                if not ele and common.SYSTEM.c.mediaadder_search_by_name:
                    log.info(u'%s did not find %s(%s) trying now by NAME' % (provider, media.name, media.externalID))
                    rootElement = mtm.search(media.name)
                    if len(list(rootElement.children)) == 1:
                        log.info("We found one by with the name %s adding it!" % media.name)
                        ele = list(rootElement.children)[0]
                    else:
                        log.info("We found multiple results with by name %s" % media.name)
                        for child in rootElement.children:
                            log.info("found %s" % child)

                if ele:
                    log.info(u'we found %s. now lets gets real' % ele)
                    if media.status is None:
                        new_status = common.getStatusByID(ele.manager.c.automatic_new_status_select)
                    else:
                        new_status = media.status
                    if ele.manager.makeReal(ele, new_status):
                        createGenericEvent(ele, u'autoAdd', 'I was added by %s' % adder)
                        common.MM.createInfo(u'%s added %s' % (adder, ele.getName()))
                        media.root = ele
                        if media not in successfulAdd:
                            successfulAdd.append(media)
                            if new_status == common.WANTED:
                                t = TaskThread(runSearcherForMediaType, ele.manager, ele)
                                t.start()
                else:
                    log.info("Nothing found :(")

        adder.successfulAdd(successfulAdd)
Exemple #9
0
def updateElement(element, force=False, withDecendents=True):
    for p in common.PM.getProvider(runFor=element.manager):
        # TODO: make sure we use the updated element after one provider is done
        for current_tag in p.tags:
            pID = element.getField('id', current_tag)
            if not pID:
                log.info(u'we dont have this element(%s) on provider(%s) with tag %s' % (element, p, current_tag))
                # TODO search element by name or with help of xem ... yeah wishful thinking
                # new_e = p.searchForElement(element.getName())
                log.warning('getting an element by name is not implemented can not refresh')
                continue
            log(u'Getting %s with provider id %s on %s' % (element, pID, p))
            new_e = p.getElement(pID, element)
            createGenericEvent(element, 'refreshing', u'Serching for update on %s' % p)
            if new_e:
                log.info(u"%s returned an element" % p)
            else:
                log.info(u"%s returned NO element" % p)
                continue

            log("Processing new data tree %s" % new_e)
            new_nodes = helper.getNewNodes(element, new_e, current_tag)
            log("Processing %s done" % new_e)
            if new_nodes:
                for new_node in new_nodes:
                    log.info("%s is a new node compared to the root %s" % (new_node, element))
                    new_parent = helper.findOldNode(new_node.parent, element, current_tag)
                    log.debug("attaching %s to %s" % (new_node, new_parent))
                    new_node.parent = new_parent
                    new_status = common.getStatusByID(new_node.manager.c.new_node_status_select)
                    log.debug("Setting status of new node %s to %s" % (new_node, new_status))
                    new_node.status = new_status
                    new_node.save()
                    common.Q.put(('image.download', {'id': new_node.id}))
            else:
                log("No new nodes found in %s" % new_e)

            log("Clearing cache from %s" % element)
            element.clearTreeCache()
            log("Clearing cache from %s" % new_e)
            new_e.clearTreeCache()

            for updated_node in [new_e] + new_e.decendants:
                old_node = helper.findOldNode(updated_node, element, current_tag)
                if old_node is None:
                    log.error("NO old node found for %s in %s" % (updated_node, element))
                    continue

                if not helper.sameElements(old_node, updated_node):
                    log.info(u"Found new version of %s" % old_node)
                    for f in list(updated_node.fields):
                        old_node.setField(f.name, f.value, f.provider)
                    common.Q.put(('image.download', {'id': old_node.id}))
Exemple #10
0
def updateElement(element, force=False, withDecendents=True):
    for p in common.PM.getProvider(runFor=element.manager):
        # TODO: make sure we use the updated element after one provider is done
        for current_tag in p.tags:
            pID = element.getField('id', current_tag)
            if not pID:
                log.info(u'we dont have this element(%s) on provider(%s) with tag %s' % (element, p, current_tag))
                # TODO search element by name or with help of xem ... yeah wishful thinking
                # new_e = p.searchForElement(element.getName())
                log.warning('getting an element by name is not implemented can not refresh')
                continue
            log(u'Getting %s with provider id %s on %s' % (element, pID, p))
            new_e = p.getElement(pID, element)
            createGenericEvent(element, 'refreshing', u'Serching for update on %s' % p)
            if new_e:
                log.info(u"%s returned an element" % p)
            else:
                log.info(u"%s returned NO element" % p)
                continue

            log("Processing new data tree %s" % new_e)
            new_nodes = helper.getNewNodes(element, new_e, current_tag)
            log("Processing %s done" % new_e)
            if new_nodes:
                for new_node in new_nodes:
                    log.info("%s is a new node compared to the root %s" % (new_node, element))
                    new_parent = helper.findOldNode(new_node.parent, element, current_tag)
                    log.debug("attaching %s to %s" % (new_node, new_parent))
                    new_node.parent = new_parent
                    new_status = common.getStatusByID(new_node.manager.c.new_node_status_select)
                    log.debug("Setting status of new node %s to %s" % (new_node, new_status))
                    new_node.status = new_status
                    new_node.save()
                    common.Q.put(('image.download', {'id': new_node.id}))
            else:
                log("No new nodes found in %s" % new_e)

            log("Clearing cache from %s" % element)
            element.clearTreeCache()
            log("Clearing cache from %s" % new_e)
            new_e.clearTreeCache()

            for updated_node in [new_e] + new_e.decendants:
                old_node = helper.findOldNode(updated_node, element, current_tag)
                if old_node is None:
                    log.error("NO old node found for %s in %s" % (updated_node, element))
                    continue

                if not helper.sameElements(old_node, updated_node):
                    log.info(u"Found new version of %s" % old_node)
                    for f in list(updated_node.fields):
                        old_node.setField(f.name, f.value, f.provider)
                    common.Q.put(('image.download', {'id': old_node.id}))
Exemple #11
0
    def setStatus(self, status_id, element_id):
        status = common.getStatusByID(int(status_id))
        try:
            ele = Element.get(Element.id == element_id)
            ele.status = status
            ele.save()
        except:
            return json.dumps({'result': False, 'data': {}, 'msg': 'Could not set status.'})

        if status == common.WANTED:
            t = tasks.TaskThread(tasks.searchElement, ele)
            t.start()

        return json.dumps({'result': True, 'data': {'status_id': status.id}, 'msg': u'%s set to %s' % (ele.getName(), status)})
Exemple #12
0
    def setStatus(self, status_id, element_id):
        status = common.getStatusByID(int(status_id))
        try:
            ele = Element.get(Element.id == element_id)
            ele.status = status
            ele.save()
        except:
            return json.dumps({'result': False, 'data': {}, 'msg': 'Could not set status.'})

        if status == common.WANTED:
            t = tasks.TaskThread(tasks.searchElement, ele)
            t.start()

        return json.dumps({'result': True, 'data': {'status_id': status.id}, 'msg': u'%s set to %s' % (ele.getName(), status)})
Exemple #13
0
    def setStatus(self, status_id, element_id):
        status = common.getStatusByID(int(status_id))
        try:
            ele = Element.get(Element.id == element_id)
            ele.status = status
            ele.save()
        except:
            return json.dumps({"result": False, "data": {}, "msg": "Could not set status."})

        if status == common.WANTED:
            t = tasks.TaskThread(tasks.searchElement, ele)
            t.start()

        return json.dumps(
            {"result": True, "data": {"screenName": u"%s" % status}, "msg": u"%s set to %s" % (ele.getName(), status)}
        )
Exemple #14
0
def runMediaAdder():
    for adder in common.PM.MA:
        medias = adder.runShedule()
        successfulAdd = []
        for media in medias:
            # print '######'
            # print media.mediaTypeIdentifier
            # print media.externalID
            # print media.name
            mtm = common.PM.getMediaTypeManager(media.mediaTypeIdentifier)[0]
            try:
                new_e = Element.getWhereField(mtm.mt, media.elementType, {'id': media.externalID}, media.providerTag, mtm.root)
            except Element.DoesNotExist:
                pass
            else:
                log(u'We already have %s' % new_e)
                successfulAdd.append(media)
                continue
            for provider in common.PM.getProvider(runFor=mtm):
                log.info(u'%s is looking for %s(%s) on %s' % (adder, media.name, media.externalID, provider))
                ele = provider.getElement(media.externalID)
                if ele:
                    log.info(u'we found %s. now lets gets real' % ele)
                    if media.status is None:
                        new_status = common.getStatusByID(ele.manager.c.automatic_new_status_select)
                    else:
                        new_status = media.status
                    if ele.manager.makeReal(ele, new_status):
                        createGenericEvent(ele, u'autoAdd', 'I was added by %s' % adder)
                        common.MM.createInfo(u'%s added %s' % (adder, ele.getName()))
                        if media not in successfulAdd:
                            successfulAdd.append(media)
                            if new_status == common.WANTED:
                                t = TaskThread(runSearcherForMediaType, ele.manager, ele)
                                t.start()
                else:
                    log.info(u'%s did not find %s(%s)' % (provider, media.name, media.externalID))
        adder.successfulAdd(successfulAdd)
Exemple #15
0
def runMediaAdder():
    for adder in common.PM.MA:
        medias = adder.runShedule()
        successfulAdd = []
        for media in medias:
            # print '######'
            # print media.mediaTypeIdentifier
            # print media.externalID
            # print media.name
            mtm = common.PM.getMediaTypeManager(media.mediaTypeIdentifier)[0]
            try:
                new_e = Element.getWhereField(mtm.mt, media.elementType,
                                              {'id': media.externalID},
                                              media.providerTag, mtm.root)
            except Element.DoesNotExist:
                pass
            else:
                log(u'We already have %s' % new_e)
                media.root = new_e
                successfulAdd.append(media)
                continue
            for provider in common.PM.getProvider(runFor=mtm):
                log.info(u'%s is looking for %s(%s:%s) on %s' %
                         (adder, media.name, media.providerTag,
                          media.externalID, provider))
                ele = provider.getElement(media.externalID,
                                          tag=media.providerTag)

                if not ele and common.SYSTEM.c.mediaadder_search_by_name:
                    log.info(u'%s did not find %s(%s) trying now by NAME' %
                             (provider, media.name, media.externalID))
                    rootElement = mtm.search(media.name)
                    if len(list(rootElement.children)) == 1:
                        log.info(
                            "We found one by with the name %s adding it!" %
                            media.name)
                        ele = list(rootElement.children)[0]
                    else:
                        log.info("We found multiple results with by name %s" %
                                 media.name)
                        for child in rootElement.children:
                            log.info("found %s" % child)

                if ele:
                    log.info(u'we found %s. now lets gets real' % ele)
                    if media.status is None:
                        new_status = common.getStatusByID(
                            ele.manager.c.automatic_new_status_select)
                    else:
                        new_status = media.status
                    if ele.manager.makeReal(ele, new_status):
                        createGenericEvent(ele, u'autoAdd',
                                           'I was added by %s' % adder)
                        common.MM.createInfo(u'%s added %s' %
                                             (adder, ele.getName()))
                        media.root = ele
                        if media not in successfulAdd:
                            successfulAdd.append(media)
                            if new_status == common.WANTED:
                                t = TaskThread(runSearcherForMediaType,
                                               ele.manager, ele)
                                t.start()
                else:
                    log.info("Nothing found :(")

        adder.successfulAdd(successfulAdd)