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.

Attachment: duplicates.bookmarks
Description: Binary data

Attachment: $__plugins_sq_bookmarks_deserializer.js-R04.json
Description: application/json

Reply via email to