Esempio n. 1
0
 def setUp(self):
   self.date = datetime.now(timezone.utc)
   self.reference = Reference.objects.create(
     url=u"http://bla",
     title=u"a bla",
     pub_date=self.date)
   self.source1 = Reference.objects.create(
     url=u"http://blaSrc1",
     title=u"a source",
     pub_date=self.date)
   self.source2 = Reference.objects.create(
     url=u"http://blaSrc2",
     title=u"a source2",
     pub_date=self.date)
   self.reference.sources.add(self.source1)
   self.reference.sources.add(self.source2)
   self.user = User.objects.create_user(username="******",
                                        password="******")
   self.user_profile = UserProfile.objects.create(owner=self.user)
   self.bkm = UserBookmark.objects.create(
     owner=self.user,
     reference=self.reference,
     saved_date=self.date,
     is_public=True)
   set_item_tag_names(self.user, self.reference, ["T1","T2"])
   self.other_user = User.objects.create_user(username="******",
                                              password="******")
Esempio n. 2
0
def import_user_bookmarks_from_ns_list(user, nsbmk_txt):
    ref_and_metadata = import_references_from_ns_bookmark_list(nsbmk_txt)
    bmk_to_process = []
    for ref, meta in ref_and_metadata.items():
        try:
            bmk = UserBookmark.objects.get(owner=user, reference=ref)
        except ObjectDoesNotExist:
            bmk = UserBookmark(owner=user, reference=ref, saved_date=ref.pub_date)
            ref.save_count += 1
            for src in ref.sources.all():
                user.userprofile.sources.add(src)
        bmk.is_public = meta.is_public
        bmk.comment = meta.note
        # pile up the bookmarks for tag attribution
        bmk_to_process.append((bmk, meta))
    with transaction.commit_on_success():
        for b, _ in bmk_to_process:
            b.reference.save()
            b.save()
    classif_data_to_save = []
    for bmk, meta in bmk_to_process:
        valid_tags = [t for t in meta.tags if len(t) <= TAG_NAME_MAX_LENGTH]
        if len(valid_tags) != len(meta.tags):
            invalid_tags = [t for t in meta.tags if len(t) > TAG_NAME_MAX_LENGTH]
            logger.error(
                "Could not import some bmk tags with too long names (%s>%s)"
                % (",".join(len(t) for t in invalid_tags), TAG_NAME_MAX_LENGTH)
            )
        classif_data_to_save.append(set_item_tag_names(user, bmk.reference, valid_tags))
    with transaction.commit_on_success():
        for cd in classif_data_to_save:
            cd.save()
Esempio n. 3
0
def import_user_bookmarks_from_ns_list(user,nsbmk_txt):
  ref_and_metadata = import_references_from_ns_bookmark_list(nsbmk_txt)
  bmk_to_process = []
  for ref,meta in ref_and_metadata.items():
    try:
      bmk = UserBookmark.objects.get(owner=user,reference=ref)
    except ObjectDoesNotExist:
      bmk = UserBookmark(owner=user,reference=ref,
                         saved_date=ref.pub_date)
      ref.save_count += 1
      for src in ref.sources.all():
        user.userprofile.sources.add(src)
    bmk.is_public = meta.is_public
    bmk.comment = meta.note
    # pile up the bookmarks for tag attribution
    bmk_to_process.append((bmk,meta))
  with transaction.commit_on_success():
    for b,_ in bmk_to_process:
      b.reference.save()
      b.save()
  classif_data_to_save = []
  for bmk,meta in bmk_to_process:
    valid_tags = [t for t in meta.tags if len(t)<=TAG_NAME_MAX_LENGTH]
    if len(valid_tags)!=len(meta.tags):
      invalid_tags = [t for t in meta.tags if len(t)>TAG_NAME_MAX_LENGTH]
      logger.error("Could not import some bmk tags with too long names (%s>%s)"\
                   % (",".join(len(t) for t in invalid_tags),TAG_NAME_MAX_LENGTH))
    classif_data_to_save.append(set_item_tag_names(user,bmk.reference,valid_tags))
  with transaction.commit_on_success():
    for cd in classif_data_to_save:
      cd.save()
Esempio n. 4
0
def import_user_feedsources_from_opml(user,opml_txt):
  feeds_and_tags = import_feedsources_from_opml(opml_txt)
  profile = UserProfile.objects.get(owner=user)
  classif_data_to_save = []
  for feed,tags in feeds_and_tags.items():
    profile.web_feeds.add(feed)
    profile.sources.add(feed.source)
    valid_tags = [t for t in tags if len(t)<=TAG_NAME_MAX_LENGTH]
    if len(valid_tags)!=len(tags):
      invalid_tags = [t for t in tags if len(t)>TAG_NAME_MAX_LENGTH]
      logger.error("Could not import some source tags with too long names (%s>%s)"\
                   % (",".join(str(len(t)) for t in invalid_tags),
                      TAG_NAME_MAX_LENGTH))
    classif_data_to_save.append(set_item_tag_names(user,feed,valid_tags))
  with transaction.commit_on_success():
    for cd in classif_data_to_save:
      cd.save()
Esempio n. 5
0
def import_user_feedsources_from_opml(user,opml_txt):
  feeds_and_tags = import_feedsources_from_opml(opml_txt)
  profile = UserProfile.objects.get(owner=user)
  classif_data_to_save = []
  for feed,tags in feeds_and_tags.items():
    profile.web_feeds.add(feed)
    profile.sources.add(feed.source)
    valid_tags = [t for t in tags if len(t)<=TAG_NAME_MAX_LENGTH]
    if len(valid_tags)!=len(tags):
      invalid_tags = [t for t in tags if len(t)>TAG_NAME_MAX_LENGTH]
      logger.error("Could not import some source tags with too long names (%s>%s)"\
                   % (",".join(str(len(t)) for t in invalid_tags),
                      TAG_NAME_MAX_LENGTH))
    classif_data_to_save.append(set_item_tag_names(user,feed,valid_tags))
  with transaction.atomic():
    for cd in classif_data_to_save:
      cd.save()
Esempio n. 6
0
 def test_set_item_tag_names(self):
     cd = set_item_tag_names(self.user_a, self.item_1, ["blah", "new"])
     self.assertEqual(4, cd.tags.count())
     tag_names = [t.name for t in cd.tags.all()]
     self.assertIn("blah", tag_names)
     self.assertIn("new", tag_names)
Esempio n. 7
0
 def test_set_item_tag_names(self):
   cd = set_item_tag_names(self.user_a,self.item_1,["blah","new"])
   self.assertEqual(4,cd.tags.count())
   tag_names = [t.name for t in cd.tags.all()]
   self.assertIn("blah", tag_names)
   self.assertIn("new", tag_names)