示例#1
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()
示例#2
0
  def setUp(self):
    date = datetime.datetime.now(timezone.utc)
    self.source = Reference.objects.create(
      url=u"http://mouf",
      title=u"mouf",
      pub_date=date)
    self.reference = Reference.objects.create(
      url=u"http://mouf/a",
      title=u"glop",
      pub_date=date)
    self.reference.sources.add(self.source)
    nsbmk_txt = """\
<!DOCTYPE NETSCAPE-Bookmark-file-1>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<!-- This is an automatically generated file.
It will be read and overwritten.
Do Not Edit! -->
<TITLE>Bookmarks</TITLE>
<H1>Bookmarks</H1>
<DL><p>
<DT><A HREF="http://www.example.com" ADD_DATE="1367951483" PRIVATE="1" TAGS="example,html">The example</A>
<DD>An example bookmark.
<DT><A HREF="http://mouf/a" ADD_DATE="1366828226" PRIVATE="0" TAGS="test">The mouf</A>
<DD>This is just a test
<DT><A HREF="http://%s" ADD_DATE="1366828226" PRIVATE="0" TAGS="test">Long</A>
<DD>A too long URL.
</DL><p>
""" % ("u"*(URL_MAX_LENGTH))
    self.bmk_and_metadata = import_references_from_ns_bookmark_list(nsbmk_txt)
示例#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()
示例#4
0
    def setUp(self):
        date = datetime.datetime.now(timezone.utc)
        self.source = Reference.objects.create(url=u"http://mouf",
                                               title=u"mouf",
                                               pub_date=date)
        self.reference = Reference.objects.create(url=u"http://mouf/a",
                                                  title=u"glop",
                                                  pub_date=date)
        self.reference.sources.add(self.source)
        nsbmk_txt = """\
<!DOCTYPE NETSCAPE-Bookmark-file-1>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<!-- This is an automatically generated file.
It will be read and overwritten.
Do Not Edit! -->
<TITLE>Bookmarks</TITLE>
<H1>Bookmarks</H1>
<DL><p>
<DT><A HREF="http://www.example.com" ADD_DATE="1367951483" PRIVATE="1" TAGS="example,html">The example</A>
<DD>An example bookmark.
<DT><A HREF="http://mouf/a" ADD_DATE="1366828226" PRIVATE="0" TAGS="test">The mouf</A>
<DD>This is just a test
<DT><A HREF="http://%s" ADD_DATE="1366828226" PRIVATE="0" TAGS="test">Long</A>
<DD>A too long URL.
</DL><p>
""" % ("u" * (URL_MAX_LENGTH))
        self.bmk_and_metadata = import_references_from_ns_bookmark_list(
            nsbmk_txt)