Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add a write_index method, avoid repetition |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | master |
Files: | files | file ages | folders |
SHA3-256: |
410d185b807dd749ce75c0b5f82b9454 |
User & Date: | simon 2018-11-16 14:59:42 |
Original Comment: | Add a write_index method, avoid repitition |
Context
2018-11-16
| ||
17:46 | Move some move common bits out to a method check-in: 20b98bc9de user: atomicules tags: master, trunk | |
14:59 | Add a write_index method, avoid repetition check-in: 410d185b80 user: simon tags: master, trunk | |
14:46 | Minor formatting changes check-in: bf33015cce user: simon tags: master, trunk | |
Changes
Changes to snose.py.
︙ | ︙ | |||
71 72 73 74 75 76 77 | print("Imported %s into Simplenote with key %s" % (filename, returned[0]['key'])) except IOError as e: print("Failed to add note to Simplenote") print(e) else: #Add mapping snose[filename] = {'key': returned[0]['key'], 'version': returned[0]['version'], 'modifydate': float(os.path.getmtime(filename)) } #Use actual file mod date | < < < < < < < | < | | < < | < < < | 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | print("Imported %s into Simplenote with key %s" % (filename, returned[0]['key'])) except IOError as e: print("Failed to add note to Simplenote") print(e) else: #Add mapping snose[filename] = {'key': returned[0]['key'], 'version': returned[0]['version'], 'modifydate': float(os.path.getmtime(filename)) } #Use actual file mod date write_index(snose, "But note was successfully imported to Simplenote with key %s. Try sniffing the file") def sniff(snclient, key, filename): #How to ensure remote gets or has snose tag? # Add a new mapping only snose = load_or_new() #Get details about current Simplenote file try: remote = snclient.get_note(key) #What if can't be found, need to abort... except IOError as e: print("Failed to find that note on Simplenote") print(e) else: #Add mapping snose[filename] = {'key': remote[0]['key'], 'version': remote[0]['version'], 'modifydate': float(os.path.getmtime(filename)) } write_index(snose) def sneeze(snclient, key, filename): #place an existing note in current directory snose = load_or_new() #Get remote note try: |
︙ | ︙ | |||
140 141 142 143 144 145 146 | with open(filename, 'w', encoding="utf-8") as f: f.write(remote[0]['content']) except IOError as e: print("Failed to create local copy of that note") print(e) else: #Update index | < | < < < < < | | 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | with open(filename, 'w', encoding="utf-8") as f: f.write(remote[0]['content']) except IOError as e: print("Failed to create local copy of that note") print(e) else: #Update index snose[filename] = {'key': remote[0]['key'], 'version': remote[0]['version'], 'modifydate': float(os.path.getmtime(filename)) } #Need to set as local modified date as otherwise will want to sync it straight away. write_index(snose, "But note was created locally. Try sniffing the file to add it to the index.") def blow(snclient, key): #With given key from .snose file, roll back to the previous version #1) Check exists in .snose index #2) Get previous version of remote |
︙ | ︙ | |||
214 215 216 217 218 219 220 | print("Rolled back remote version") except IOError as e: print("Failed to roll back remote version") else: #Get returned metadata snose[filename]['version'] = returned[0]['version'] snose[filename]['modifydate'] = sysmodifydate | < < < < < < | | 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 | print("Rolled back remote version") except IOError as e: print("Failed to roll back remote version") else: #Get returned metadata snose[filename]['version'] = returned[0]['version'] snose[filename]['modifydate'] = sysmodifydate write_index(snose, "Try running a sync to get index corrected.") def snot(snclient): #List simplenote notes tagged with "snose" notelist = snclient.get_note_list() #That gets list of keys. Then need to iterate through and get first line of text. #This is going to be slow. |
︙ | ︙ | |||
283 284 285 286 287 288 289 | print("Merged local content for %s" % name) #Override the returned value? As otherwise next sync will immediately update the remote version for no reason. snose[name]['modifydate'] = os.path.getmtime(name) except IOError as e: print("Failed to merge content locally for %s" % name) print("Therefore skipping updating the index for this note")#I think this is a good idea? #Update the index file | < < < < < | < | 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 | print("Merged local content for %s" % name) #Override the returned value? As otherwise next sync will immediately update the remote version for no reason. snose[name]['modifydate'] = os.path.getmtime(name) except IOError as e: print("Failed to merge content locally for %s" % name) print("Therefore skipping updating the index for this note")#I think this is a good idea? #Update the index file write_index(snose, "But remote and local copy of the file itself have been updated.") elif dry: print("Updated remote version of %s" % name) #For dry run, collect list of "updated remotes" to ignore in local updates dryremotes.append(name) #Fetch details from Simplenote try: remote = snclient.get_note(local['key']) |
︙ | ︙ | |||
318 319 320 321 322 323 324 | except IOError as e: print("Failed to update local note %s with remote content" % name) print("Will not updatet the .snose index file for this file") else: #Also update .snose index snose[name]['version'] = remote[0]['version'] snose[name]['modifydate'] = os.path.getmtime(name) #As if set remote modify date, local file will immediately appear 'modified' | < < < < < | < > > > > > > > > > > | 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 | except IOError as e: print("Failed to update local note %s with remote content" % name) print("Will not updatet the .snose index file for this file") else: #Also update .snose index snose[name]['version'] = remote[0]['version'] snose[name]['modifydate'] = os.path.getmtime(name) #As if set remote modify date, local file will immediately appear 'modified' write_index(snose, "But local copy of the file %s has been updated with remote changes" % name) elif (dry and (not (name in dryremotes))): print("Updated local version of %s" % name) def load_or_new(): try: with open('.snose', 'r') as f: snose = json.load(f) except IOError as e: #Doesn't exist so create new snose = {} return snose def write_index(snose, msg=None): try: with open('.snose', 'w') as f: json.dump(snose, f, indent=2) except IOError as e: print("Failed to update index") if msg: print(msg) main() |