Hi all, wanted to share a python server project I worked 
on. https://github.com/itsamenathan/tiddlysaver-python

On Tuesday, January 21, 2020 at 2:37:41 AM UTC-7 tony wrote:

> Thank you UBi!
>
> So refreshing to have alternatives.
>
> Tested and works under Debian Linux via ChromeOs in an inexpensive 
> Chromebook running Crostini 
> <https://chromium.googlesource.com/chromiumos/docs/+/master/containers_and_vms.md>
>
> and timely given the future status of Chrome Apps 
> <https://blog.chromium.org/2020/01/moving-forward-from-chrome-apps.html> 
> potentially affecting TiddlyChrome and/or TiddlyDrive
>
> Best,
> tony
>
>
> On Sunday, December 29, 2019 at 10:15:16 AM UTC-8, UBi wrote:
>>
>> Hi again,
>>
>> here is a slightly improved version of twserver.py (moved timestamp 
>> before .html in backup file names, tidied code).
>>
>> #!/usr/bin/python3
>>
>> import datetime, shutil, os, http.server
>>
>> def makebackup(src):
>>     (srcpath, srcfile) = os.path.split(src)
>>     (srcname, src_ext) = os.path.splitext(srcfile)
>>     tstamp=datetime.datetime.now().strftime("%Y%m%d%H%M%S")
>>     dstpath = os.path.join(srcpath,'twBackups')
>>     if not os.path.exists(dstpath):
>>         os.mkdir(dstpath)
>>     shutil.copyfile(src, os.path.join(dstpath, srcname+'-'+tstamp+src_ext
>> ))
>>
>> class ExtendedHandler(http.server.SimpleHTTPRequestHandler):
>>     def do_OPTIONS(self):
>>         self.send_response(200, 'OK')
>>         self.send_header('allow',
>> 'GET,HEAD,POST,OPTIONS,CONNECT,PUT,DAV,dav')
>>         self.send_header('x-api-access-type','file')
>>         self.send_header('dav','tw5/put')
>>         self.end_headers()
>>     def do_PUT(self):
>>         path = self.translate_path(self.path)
>>         makebackup(path)
>>         with open(path, "wb") as dst:
>>             dst.write(self.rfile.read(int(self.headers['Content-Length'
>> ])))
>>         self.send_response(200, 'OK')
>>         self.end_headers()
>>
>> os.chdir(os.path.dirname(os.path.abspath(__file__)))
>> http.server.HTTPServer(('localhost',8080),ExtendedHandler).serve_forever
>> ()
>>
>> Like it's template, 
>> https://tiddlywiki.com/#Saving%20via%20a%20Minimal%20Ruby%20Server, it 
>> covers only the bare minimum TW server needs.
>> Feel free to use it / customise it at will.
>>
>> Am Samstag, 28. Dezember 2019 17:52:43 UTC+1 schrieb UBi:
>>>
>>> Hello,
>>>
>>> I had some spare time recently, so I tried to re-implement the Ruby 
>>> Server in Python:
>>>
>>> #!/usr/bin/python3
>>>
>>> from http.server import SimpleHTTPRequestHandler, HTTPServer
>>> import datetime, shutil, os
>>>
>>> def makebackup(src):
>>>     (srcpath, srcfile) = os.path.split(src)
>>>     tstamp=datetime.datetime.now().strftime("%Y%m%d%H%M%S")
>>>     dstpath = os.path.join(srcpath,'twBackups')
>>>     if not os.path.exists(dstpath):
>>>         os.mkdir(dstpath)
>>>     shutil.copyfile(src, os.path.join(dstpath, srcfile+'.'+tstamp))
>>>
>>> class ExtendedHandler(SimpleHTTPRequestHandler):
>>>     def do_OPTIONS(self):
>>>         self.send_response(200, 'OK')
>>>         self.send_header('allow',
>>> 'GET,HEAD,POST,OPTIONS,CONNECT,PUT,DAV,dav')
>>>         self.send_header('x-api-access-type','file')
>>>         self.send_header('dav','tw5/put')
>>>         self.end_headers()
>>>     def do_PUT(self):
>>>         length = int(self.headers['Content-Length'])
>>>         path = self.translate_path(self.path)
>>>         makebackup(path)
>>>         with open(path, "wb") as dst:
>>>             dst.write(self.rfile.read(length))
>>>         self.send_response(200, 'OK')
>>>         self.send_header('Content-Type', 'text/html')
>>>         self.end_headers()
>>>
>>> os.chdir(os.path.dirname(os.path.abspath(__file__)))
>>> HTTPServer(('localhost',8080),ExtendedHandler).serve_forever()
>>>
>>> It works for me :-)
>>>
>>>

-- 
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/d0423f5c-d186-4448-a19f-39933ad50a56n%40googlegroups.com.

Reply via email to