Add examples and a README
This commit is contained in:
parent
677679c644
commit
73cbdfa268
5 changed files with 33 additions and 149 deletions
33
README.md
Normal file
33
README.md
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
# SMS Scripts :
|
||||||
|
|
||||||
|
Scripts to convert SMS backup from [QKSMS](https://github.com/moezbhatti/qksms) or [QUIK-SMS](https://github.com/octoshrimpy/quik) to [Fossify Messages](https://github.com/FossifyOrg/Messages) backup
|
||||||
|
|
||||||
|
**The scripts don't work with MMS !!!**
|
||||||
|
|
||||||
|
## Usage :
|
||||||
|
|
||||||
|
If you just want to convert your old QKSMS to Fossify Messages :
|
||||||
|
|
||||||
|
```sh
|
||||||
|
python qsms_to_fossify ./QSMS_Backup.json ./New_Backup_Name.json
|
||||||
|
```
|
||||||
|
|
||||||
|
If you already use Fossify on your new phone **After** using QKSMS/QUIKSMS :
|
||||||
|
|
||||||
|
```sh
|
||||||
|
python qsms_merge_fossify ./QSMS_Backup.json ./Fossify_Backup.json New_Backup_Name.json
|
||||||
|
```
|
||||||
|
|
||||||
|
## Examples :
|
||||||
|
|
||||||
|
Convert backup :
|
||||||
|
|
||||||
|
```sh
|
||||||
|
python qsms_to_fossify ./examples/QSMS_backup.json ./examples/Converted_Backup.json
|
||||||
|
```
|
||||||
|
|
||||||
|
Merge backup :
|
||||||
|
|
||||||
|
```sh
|
||||||
|
python qsms_merge_fossify ./examples/QSMS_backup.json ./examples/Fossify_backup.json ./examples/Merged_Backup.json
|
||||||
|
```
|
|
@ -1,81 +0,0 @@
|
||||||
import json
|
|
||||||
import sys
|
|
||||||
|
|
||||||
class newJSON() :
|
|
||||||
def __init__(
|
|
||||||
self,
|
|
||||||
old_type,
|
|
||||||
old_address,
|
|
||||||
old_date,
|
|
||||||
old_dateSent,
|
|
||||||
old_read,
|
|
||||||
old_status,
|
|
||||||
old_body,
|
|
||||||
old_locked,
|
|
||||||
old_subId,
|
|
||||||
) :
|
|
||||||
self.subscriptionId = old_subId
|
|
||||||
self.address = old_address
|
|
||||||
self.body = old_body
|
|
||||||
self.date = old_date
|
|
||||||
self.dateSent = old_dateSent
|
|
||||||
self.locked = 1 if old_locked else 0
|
|
||||||
self.protocol = None
|
|
||||||
self.read = 1 if old_read else 0
|
|
||||||
self.status = old_status
|
|
||||||
self.type = old_type
|
|
||||||
self.serviceCenter = None
|
|
||||||
self.backupType = "sms"
|
|
||||||
|
|
||||||
def formatMsg(oldMsgJSON) :
|
|
||||||
return newJSON(
|
|
||||||
oldMsgJSON["type"],
|
|
||||||
oldMsgJSON["address"],
|
|
||||||
oldMsgJSON["date"],
|
|
||||||
oldMsgJSON["dateSent"],
|
|
||||||
oldMsgJSON["read"],
|
|
||||||
oldMsgJSON["status"],
|
|
||||||
oldMsgJSON["body"],
|
|
||||||
oldMsgJSON["locked"],
|
|
||||||
oldMsgJSON["subId"],
|
|
||||||
).__dict__
|
|
||||||
|
|
||||||
def convertBck(old_path : str,new_path : str) :
|
|
||||||
with open(old_path) as file :
|
|
||||||
data = json.load(file)
|
|
||||||
|
|
||||||
newBck = []
|
|
||||||
for msg in data["messages"] :
|
|
||||||
# Skip all message without body
|
|
||||||
if msg["body"] != "" :
|
|
||||||
newBck.append(formatMsg(msg))
|
|
||||||
# Write to new file
|
|
||||||
with open(new_path,"w") as file :
|
|
||||||
json.dump(newBck,file,indent=2)
|
|
||||||
|
|
||||||
def appendToBck(old_path : str,target_path : str) :
|
|
||||||
# Load file to import
|
|
||||||
with open(old_path) as file :
|
|
||||||
old_data = json.load(file)
|
|
||||||
# Load file to edit
|
|
||||||
with open(new_path,"rw") as file :
|
|
||||||
target = json.load(file)
|
|
||||||
for msg in data["messages"] :
|
|
||||||
if msg["body"] != "" :
|
|
||||||
data.append(formatMsg(msg))
|
|
||||||
with open(new_path,"w") as file :
|
|
||||||
json.dump(newBck,file,indent=2)
|
|
||||||
|
|
||||||
def main() :
|
|
||||||
if len(sys.argv) != 3 :
|
|
||||||
print(
|
|
||||||
"Unrecognized arguments :\n",
|
|
||||||
"python3 conv_backup.py ./backup.json ./new.json"
|
|
||||||
)
|
|
||||||
sys.exit(1)
|
|
||||||
convertBck(sys.argv[1],sys.argv[2])
|
|
||||||
sys.exit(0)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__" :
|
|
||||||
main()
|
|
|
@ -1,68 +0,0 @@
|
||||||
import json
|
|
||||||
import sys
|
|
||||||
|
|
||||||
class newJSON() :
|
|
||||||
def __init__(
|
|
||||||
self,
|
|
||||||
old_type,
|
|
||||||
old_address,
|
|
||||||
old_date,
|
|
||||||
old_dateSent,
|
|
||||||
old_read,
|
|
||||||
old_status,
|
|
||||||
old_body,
|
|
||||||
old_locked,
|
|
||||||
old_subId,
|
|
||||||
) :
|
|
||||||
self.subscriptionId = old_subId
|
|
||||||
self.address = old_address
|
|
||||||
self.body = old_body
|
|
||||||
self.date = old_date
|
|
||||||
self.dateSent = old_dateSent
|
|
||||||
self.locked = 1 if old_locked else 0
|
|
||||||
self.protocol = None
|
|
||||||
self.read = 1 if old_read else 0
|
|
||||||
self.status = old_status
|
|
||||||
self.type = old_type
|
|
||||||
self.serviceCenter = None
|
|
||||||
self.backupType = "sms"
|
|
||||||
|
|
||||||
def formatMsg(oldMsgJSON) :
|
|
||||||
return newJSON(
|
|
||||||
oldMsgJSON["type"],
|
|
||||||
oldMsgJSON["address"],
|
|
||||||
oldMsgJSON["date"],
|
|
||||||
oldMsgJSON["dateSent"],
|
|
||||||
oldMsgJSON["read"],
|
|
||||||
oldMsgJSON["status"],
|
|
||||||
oldMsgJSON["body"],
|
|
||||||
oldMsgJSON["locked"],
|
|
||||||
oldMsgJSON["subId"],
|
|
||||||
).__dict__
|
|
||||||
|
|
||||||
def appendToBck(old_path : str,new_path : str,target_path : str) :
|
|
||||||
# Load old backup
|
|
||||||
with open(old_path) as file :
|
|
||||||
old_data = json.load(file)
|
|
||||||
# Load new backup
|
|
||||||
with open(new_path) as file :
|
|
||||||
target = json.load(file)
|
|
||||||
for msg in old_data["messages"] :
|
|
||||||
if msg["body"] != "" :
|
|
||||||
target.append(formatMsg(msg))
|
|
||||||
# Write to target
|
|
||||||
with open(target_path,"w") as file :
|
|
||||||
json.dump(target,file,indent=2)
|
|
||||||
|
|
||||||
def main() :
|
|
||||||
if len(sys.argv) != 4 :
|
|
||||||
print(
|
|
||||||
"Unrecognized arguments :\n",
|
|
||||||
"python3 edit_backup.py ./backup.json ./new_backup.json ./new.json"
|
|
||||||
)
|
|
||||||
sys.exit(1)
|
|
||||||
appendToBck(sys.argv[1],sys.argv[2],sys.argv[3])
|
|
||||||
sys.exit(0)
|
|
||||||
|
|
||||||
if __name__ == "__main__" :
|
|
||||||
main()
|
|
Loading…
Reference in a new issue