suurjaak / Skyperious

Skype chat history tool
Other
350 stars 36 forks source link

Attribute Error: 'dict' object has no attribute 'endswith' #92

Closed 29988122 closed 3 years ago

29988122 commented 3 years ago

I'm using windows binary 64bit on Windows 10.

圖片

I imported the chat jsons from https://support.skype.com/en/faq/FA34894/how-do-i-export-my-skype-files-and-chat-history as some of the group chats can't be retreived by Skyperious. They're parsed correctly(probably), judging from the total parsed chat numbers.

What should I do? Clean up my python enviroment or using linux VM instead? Also, I can't find stack trace or log files under C:\Users\AppData\Local\Skyperious.

suurjaak commented 3 years ago

There is a more detailed log available under menu Help -> Show log window.

If you try importing again, you should see a full stack trace there. Can you paste the result here?

29988122 commented 3 years ago

Thanks for the timely response!

2021-01-12 23:34:20.564 Error parsing Skype export C:\Users\Jerry Ho\Desktop\messages.json.

            Traceback (most recent call last):
              File "workers.py", line 864, in run
              File "live.py", line 873, in export_read
              File "live.py", line 966, in export_parse
              File "live.py", line 1264, in id_to_identity
            AttributeError: 'dict' object has no attribute 'endswith'

I also tried the dockerfile, but I guess that's out of date, so error is kinda normal. 圖片

BTW, If you really need the messeage.json file to debug, please give me a mail address so I can send the link to you(165mb text, json only) - I literally have 0 idea how many sensitive personal infos are there...xD

suurjaak commented 3 years ago

Interesting, apparently your export file has a somewhat different structure.

Having the messages.json file would certainly help in tracking down the difference, but I'm somewhat loathe to delve into your personal communications. However, if you are okay with it, you can send the file to my e-mail, erki@lap.ee (zipped, please). Or if you have DropBox or the like, you can upload the file there and send me the link.

Alternatively, can you open the file in a text editor or the like, and search for all occurrences of "members":? Typically, they ought to be something along the lines of

"members":"[\"8:username1\",\"8:username2\"]"

But it seems there is at least one where the contents have more structure and contain dicts instead.

Edited to add: I edited the log you pasted to remove personal information.

29988122 commented 3 years ago

Edited to add: I edited the log you pasted to remove personal information.

Mail sent. : D

Regarding the dict structure, I'm not so sure about what kind of datatype that is... both prettify json/beautify of VScode refused to clean this huge json file.

If this info is of any help, there's mainly two group chats that cannot be retrieved via Skyperious's login function, named 2021 maga and No king rules forever my son respectively. (I don't live in the US, so the group name is a joke for obvious reasons.) That's why I seek for the data export function provided my microsoft, and import json to Skyperious later on.

suurjaak commented 3 years ago

Ta, I got the file, so you can remove it from online now.

And I found the problem. Indeed, a few chat entries have the memberlist in a completely different form. I'll update the program so at least it can handle such entries, and in general won't error out on unexpected data on import.

Do you know what kind of chats those might be? They seem to have something to do with casting (screencasting?), and their display names all start with "Call parent thread". The last such had traffic on August 2nd, 2017.

29988122 commented 3 years ago

TBH, I have 0 idea after checking those entries.

This skype account has experienced a few changes: -MSN messenger shutdown, migrated to skype(2013) -merge msn account %user%@messengeruser.com with skype account -associate skype account with microsoft account

I'd assume the weird Call parent thread data structure happened in between the events.

I'm glad the edge condition's been found relatively speedy without too much hassle. Thank you suurjaak for keep maintaining this repo! You rock. : D

suurjaak commented 3 years ago

Fixed the error in live sync.

Also fixed the issue with Dockerfile.

Can you confirm that live sync works for you now, with the v4.4 release?

29988122 commented 3 years ago

Yes, I can confirm that -the import function works -the login and sync works 圖片

Thanks again, suurjakk. This is so useful to me! : D