Hi Saq, This is rev 4! I saw your comments later! This works and I use a JS Linter to check the code!
I was not sure how to use var?! I made some changes with respect to R03. Now duplication is like Title 1, Title 2, ... Please have a look! I also added a nasty list of bookmarks for quick tests! The regex I used the TT one with removing the last *i, *it does not make sense here! (ignore case) On Sat, May 22, 2021 at 8:44 PM Saq Imtiaz <[email protected]> wrote: > @Mohammad yes you need to have a while loop: > > while(results.Title.indexOf(title) == -1) { > title = title + "1"; > } > > Another improvement you can make just to have neater code, is to make a > function called getTitle outside and before the $tw.utils.each loop. > > var getTitle = function(title) { > title = title.replace..... > while(title in resultsTitles) { > title = title + "1"; > } > return title; > } > > Inside this function you can do the string replacement of unwanted > characters and also check for already existing titles in a loop, and return > the new title. This is an aesthetic thing though and wont really impact the > efficiency of the code. > > @TT the regexp is good, Mohammad refers to check for duplicate titles only > once instead of in a loop. So if "TiddlyWiki.com" already exists, we have > to check if "TiddlyWiki.com1" already exists. > > On Saturday, May 22, 2021 at 4:39:13 PM UTC+2 TiddlyTweeter wrote: > >> IF the regex on match is NOT GLOBAL flagged it will only match the first >> instance. >> >> I am NOT familiar with JS regex flags but try this ... >> >> */[|{}\[\]]/gi* >> >> >> Let me know! >> TT >> On Saturday, 22 May 2021 at 16:18:56 UTC+2 Mohammad wrote: >> >>> Ah, there is an issue! It only searches for the first occurrence! >>> Needs to be corrected! >>> >>> Best wishes >>> Mohammad >>> >>> >>> On Sat, May 22, 2021 at 6:39 PM Mohammad Rahmani <[email protected]> >>> wrote: >>> >>>> Hi Saq, >>>> This is the third revision! I used indexOf() and it seems it is >>>> compatible with ES5. >>>> I am not sure if the code is an efficient one or not, but it works! >>>> >>>> To give it a try I have attached a bookmarks file containing >>>> characters on parsing to generate duplicates! >>>> >>>> >>>> Best wishes >>>> Mohammad >>>> >>>> >>>> On Sat, May 22, 2021 at 3:56 PM Saq Imtiaz <[email protected]> wrote: >>>> >>>>> Hi Mohammad, it looks good! >>>>> >>>>> So we can't use the unusedtitle macro from TiddlyWiki because inside >>>>> the deserializer code, these are not tiddlers yet. >>>>> >>>>> What I recommend is to create another empty array where we make the >>>>> array for results, called resultsTitles >>>>> >>>>> Then inside the $tw.utils loop, where we have results.push, we should >>>>> also for each bookmark do resultsTitles.push(title). Now we have an >>>>> array of results titles. >>>>> >>>>> So now we have to add an extra step for creating the title after the >>>>> regex string replacement, here is pseudo code: >>>>> >>>>> while title exists in resultsTitles array >>>>> title = title + "1" >>>>> >>>>> The title variable should now be unique for the bookmarks we are >>>>> importing. >>>>> >>>>> >>>>> On Saturday, May 22, 2021 at 1:03:23 PM UTC+2 Mohammad wrote: >>>>> >>>>>> @ TT >>>>>> Check the attached revised one! >>>>>> 1. drag and drop the attached JSON in empath.html (download one from >>>>>> https://tiddlywiki.com/prerelease/) >>>>>> 2. save and reload >>>>>> 3. drag and bookmarks.html exported from FF/Edge/Chrome (I have one >>>>>> with nasty chars in the title) >>>>>> 4. See how the import works in Tiddlywiki >>>>>> >>>>>> @Saq >>>>>> >>>>>> Hoora! It works! Please see the code and advise! >>>>>> >>>>>> 1. I attached the revised deserializer and it works for titles with >>>>>> nasty characters. >>>>>> 2. Next step I will see how to use a unique title, help please >>>>>> 2.1. how can do this? should I use unusedtitle macro from TW core? >>>>>> >>>>>> >>>>>> >>>>>> Best wishes >>>>>> Mohammad >>>>>> >>>>>> >>>>>> On Sat, May 22, 2021 at 3:21 PM TiddlyTweeter <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Right. >>>>>>> >>>>>>> Try the second match pattern I gave and let me know if it works for >>>>>>> those cases ... */[|{}\[\]]/* >>>>>>> >>>>>>> On Saturday, 22 May 2021 at 12:46:05 UTC+2 Mohammad wrote: >>>>>>> >>>>>>>> Do we need to capture what is in this between? >>>>>>>> >>>>>>>> consider a title like: AIChE | American Institute of Chemical >>>>>>>> Engineers [2021] >>>>>>>> we need to remove [] and replace with - >>>>>>>> >>>>>>>> >>>>>>>> Best wishes >>>>>>>> Mohammad >>>>>>>> >>>>>>>> >>>>>>>> On Sat, May 22, 2021 at 3:12 PM TiddlyTweeter <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> @TT >>>>>>>>> What is the regex to replace the below chars with `-` at thesame >>>>>>>>> time >>>>>>>>> |, {, } >>>>>>>>> >>>>>>>>> In raw JavaScript the regex match could be: */[|{}]/* >>>>>>>>> The replace simply: */-/* >>>>>>>>> IF you want to change "[" and "]" too try: */[|{}\[\]]/* >>>>>>>>> I have NOT tested this so if there are issues let me know! >>>>>>>>> TT >>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "TiddlyWiki" group. >>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>> send an email to [email protected]. >>>>>>>>> >>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/tiddlywiki/4ccfc5e7-a333-4ad8-99c4-466e30f5f185n%40googlegroups.com >>>>>>>>> <https://groups.google.com/d/msgid/tiddlywiki/4ccfc5e7-a333-4ad8-99c4-466e30f5f185n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> >>>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "TiddlyWiki" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to [email protected]. >>>>>>> >>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/tiddlywiki/59ef0fc2-66b4-43d7-8469-ee0b97089bf7n%40googlegroups.com >>>>>>> <https://groups.google.com/d/msgid/tiddlywiki/59ef0fc2-66b4-43d7-8469-ee0b97089bf7n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> >>>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "TiddlyWiki" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/tiddlywiki/f73a724e-b8ad-4c81-9956-726b6341266an%40googlegroups.com >>>>> <https://groups.google.com/d/msgid/tiddlywiki/f73a724e-b8ad-4c81-9956-726b6341266an%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> -- > You received this message because you are subscribed to the Google Groups > "TiddlyWiki" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/tiddlywiki/ffd4411a-a18f-419e-a348-b75c2d3460e1n%40googlegroups.com > <https://groups.google.com/d/msgid/tiddlywiki/ffd4411a-a18f-419e-a348-b75c2d3460e1n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "TiddlyWiki" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/CAAV1gMBrTLiQUHwGKiFifp%3Do_XMdUJxJ9KgCMrt6sx14QLzhTg%40mail.gmail.com.
duplicates.bookmarks
Description: Binary data
$__plugins_sq_bookmarks_deserializer.js-R04.json
Description: application/json

