forked from endorphant/ttbp
big documentation pass
parent
d566154349
commit
1827d8467f
27
bin/_ttbp.py
27
bin/_ttbp.py
|
@ -1,5 +1,32 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
'''
|
||||||
|
ttbp: tilde town blogging platform
|
||||||
|
(also known as the feels engine)
|
||||||
|
a console-based blogging program developed for tilde.town
|
||||||
|
copyright (c) 2016 ~endorphant (endorphant@tilde.town)
|
||||||
|
|
||||||
|
_ttbp.py:
|
||||||
|
the beta version of the main console interface
|
||||||
|
|
||||||
|
GNU GPL BOILERPLATE:
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
the complete codebase is available at:
|
||||||
|
https://github.com/modgethanc/ttbp
|
||||||
|
'''
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import random
|
import random
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
|
@ -1,5 +1,34 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
'''
|
||||||
|
ttbp: tilde town blogging platform
|
||||||
|
(also known as the feels engine)
|
||||||
|
a console-based blogging program developed for tilde.town
|
||||||
|
copyright (c) 2016 ~endorphant (endorphant@tilde.town)
|
||||||
|
|
||||||
|
chatter.py:
|
||||||
|
some text processing utilities
|
||||||
|
|
||||||
|
GNU GPL BOILERPLATE:
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
the complete codebase is available at:
|
||||||
|
https://github.com/modgethanc/ttbp
|
||||||
|
'''
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
import random
|
import random
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
|
136
bin/core.py
136
bin/core.py
|
@ -1,5 +1,33 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
'''
|
||||||
|
ttbp: tilde town blogging platform
|
||||||
|
(also known as the feels engine)
|
||||||
|
a console-based blogging program developed for tilde.town
|
||||||
|
copyright (c) 2016 ~endorphant (endorphant@tilde.town)
|
||||||
|
|
||||||
|
core.py:
|
||||||
|
this is a core handler for some ttbp standalone/output functions
|
||||||
|
|
||||||
|
GNU GPL BOILERPLATE:
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
the complete codebase is available at:
|
||||||
|
https://github.com/modgethanc/ttbp
|
||||||
|
'''
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
import subprocess
|
import subprocess
|
||||||
|
@ -25,6 +53,10 @@ FOOTER = ""
|
||||||
FILES = []
|
FILES = []
|
||||||
|
|
||||||
def load():
|
def load():
|
||||||
|
'''
|
||||||
|
get all them globals set up!!
|
||||||
|
'''
|
||||||
|
|
||||||
global HEADER
|
global HEADER
|
||||||
global FOOTER
|
global FOOTER
|
||||||
|
|
||||||
|
@ -34,6 +66,13 @@ def load():
|
||||||
load_files()
|
load_files()
|
||||||
|
|
||||||
def load_files():
|
def load_files():
|
||||||
|
'''
|
||||||
|
file loader
|
||||||
|
|
||||||
|
* reads user's nopub file
|
||||||
|
* loads all valid filenames that are not excluded in nopub to global files list
|
||||||
|
'''
|
||||||
|
|
||||||
global FILES
|
global FILES
|
||||||
|
|
||||||
exclude = []
|
exclude = []
|
||||||
|
@ -54,6 +93,14 @@ def load_files():
|
||||||
FILES.reverse()
|
FILES.reverse()
|
||||||
|
|
||||||
def write(outurl="default.html"):
|
def write(outurl="default.html"):
|
||||||
|
'''
|
||||||
|
main page renderer
|
||||||
|
|
||||||
|
* takes everything currently in FILES and writes a single non-paginated html
|
||||||
|
file
|
||||||
|
* calls write_page() on each file to make permalinks
|
||||||
|
'''
|
||||||
|
|
||||||
outfile = open(os.path.join(WWW, outurl), "w")
|
outfile = open(os.path.join(WWW, outurl), "w")
|
||||||
|
|
||||||
outfile.write("<!--generated by the tilde.town blogging platform on "+time.strftime("%d %B %y")+"\nhttp://tilde.town/~endorphant/ttbp/-->\n\n")
|
outfile.write("<!--generated by the tilde.town blogging platform on "+time.strftime("%d %B %y")+"\nhttp://tilde.town/~endorphant/ttbp/-->\n\n")
|
||||||
|
@ -78,7 +125,12 @@ def write(outurl="default.html"):
|
||||||
return os.path.join(LIVE+USER,os.path.basename(os.path.realpath(WWW)),outurl)
|
return os.path.join(LIVE+USER,os.path.basename(os.path.realpath(WWW)),outurl)
|
||||||
|
|
||||||
def write_page(filename):
|
def write_page(filename):
|
||||||
# makes a single permalink page
|
'''
|
||||||
|
permalink generator
|
||||||
|
|
||||||
|
* makes a page out of a single entry for permalinking, using filename/date as
|
||||||
|
url
|
||||||
|
'''
|
||||||
|
|
||||||
outurl = os.path.join(WWW, "".join(parse_date(filename))+".html")
|
outurl = os.path.join(WWW, "".join(parse_date(filename))+".html")
|
||||||
outfile = open(outurl, "w")
|
outfile = open(outurl, "w")
|
||||||
|
@ -103,7 +155,12 @@ def write_page(filename):
|
||||||
return outurl
|
return outurl
|
||||||
|
|
||||||
def write_entry(filename):
|
def write_entry(filename):
|
||||||
# dump given file into entry format, return as list of strings
|
'''
|
||||||
|
entry text generator
|
||||||
|
|
||||||
|
* dump given file into entry format by parsing file as markdown
|
||||||
|
* return as list of strings
|
||||||
|
'''
|
||||||
|
|
||||||
date = parse_date(filename)
|
date = parse_date(filename)
|
||||||
|
|
||||||
|
@ -135,8 +192,15 @@ def write_entry(filename):
|
||||||
return entry
|
return entry
|
||||||
|
|
||||||
def parse_date(file):
|
def parse_date(file):
|
||||||
# assuming a filename of YYYYMMDD.txt, returns a list of
|
'''
|
||||||
# ['YYYY', 'MM', 'DD']
|
parses date out of pre-validated filename
|
||||||
|
|
||||||
|
* assumes a filename of YYYYMMDD.txt
|
||||||
|
* returns a list:
|
||||||
|
[0] 'YYYY'
|
||||||
|
[1] 'MM'
|
||||||
|
[2] 'DD'
|
||||||
|
'''
|
||||||
|
|
||||||
rawdate = os.path.splitext(os.path.basename(file))[0]
|
rawdate = os.path.splitext(os.path.basename(file))[0]
|
||||||
|
|
||||||
|
@ -145,14 +209,19 @@ def parse_date(file):
|
||||||
return date
|
return date
|
||||||
|
|
||||||
def meta(entries = FILES):
|
def meta(entries = FILES):
|
||||||
# takes a list of filenames and returns:
|
'''
|
||||||
# [0] absolute path
|
metadata generator
|
||||||
# [1] ctime
|
|
||||||
# [2] wc -w
|
* takes a list of filenames and returns a 2d list:
|
||||||
# [3] timestamp "DD month YYYY at HH:MM"
|
[0] absolute path
|
||||||
# [4] entry date YYYY-MM-DD
|
[1] ctime
|
||||||
# [5] author
|
[2] wc -w
|
||||||
# sorted in reverse date order by [4]
|
[3] timestamp "DD month YYYY at HH:MM"
|
||||||
|
[4] entry date YYYY-MM-DD
|
||||||
|
[5] author
|
||||||
|
|
||||||
|
* sorted in reverse date order by [4]
|
||||||
|
'''
|
||||||
|
|
||||||
meta = []
|
meta = []
|
||||||
|
|
||||||
|
@ -172,7 +241,11 @@ def meta(entries = FILES):
|
||||||
return meta
|
return meta
|
||||||
|
|
||||||
def valid(filename):
|
def valid(filename):
|
||||||
# check if the filename is YYYYMMDD.txt
|
'''
|
||||||
|
filename validator
|
||||||
|
|
||||||
|
* check if the filename is YYYYMMDD.txt
|
||||||
|
'''
|
||||||
|
|
||||||
filesplit = os.path.splitext(os.path.basename(filename))
|
filesplit = os.path.splitext(os.path.basename(filename))
|
||||||
|
|
||||||
|
@ -187,8 +260,13 @@ def valid(filename):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def write_global_feed(blogList):
|
def write_global_feed(blogList):
|
||||||
# takes an array of the current global blog status and prints it to
|
'''
|
||||||
# set www
|
main ttbp index printer
|
||||||
|
|
||||||
|
* sources README.md for documentation
|
||||||
|
* takes incoming list of formatted blog links for all publishing blogs and
|
||||||
|
prints to blog feed
|
||||||
|
'''
|
||||||
|
|
||||||
outfile = open(FEED, "w")
|
outfile = open(FEED, "w")
|
||||||
|
|
||||||
|
@ -207,7 +285,7 @@ def write_global_feed(blogList):
|
||||||
<h2><a href="https://github.com/modgethanc/ttbp">github
|
<h2><a href="https://github.com/modgethanc/ttbp">github
|
||||||
repo</a> | <a
|
repo</a> | <a
|
||||||
href="http://tilde.town/~endorphant/blog/20160510.html">state
|
href="http://tilde.town/~endorphant/blog/20160510.html">state
|
||||||
of the ttbp</a></h2>
|
of the ttbp</a></h2>
|
||||||
<!--<p>curious? run <b>~endorphant/bin/ttbp</b> while logged in to tilde.town.</p>
|
<!--<p>curious? run <b>~endorphant/bin/ttbp</b> while logged in to tilde.town.</p>
|
||||||
<p>it's still a little volatile. let me know if anything breaks.</p>---></div>
|
<p>it's still a little volatile. let me know if anything breaks.</p>---></div>
|
||||||
<p> </p>
|
<p> </p>
|
||||||
|
@ -241,32 +319,6 @@ def write_global_feed(blogList):
|
||||||
|
|
||||||
outfile.close()
|
outfile.close()
|
||||||
|
|
||||||
def make_docs():
|
|
||||||
|
|
||||||
outfile = open(DOCS, "w")
|
|
||||||
|
|
||||||
outfile.write("""\
|
|
||||||
<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 3.2//EN\">
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>tilde.town feels engine</title>
|
|
||||||
<link rel=\"stylesheet\" href=\"style.css\" />
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h1>tilde.town feels engine</h1>
|
|
||||||
|
|
||||||
<h2><a href="https://github.com/modgethanc/ttbp">github
|
|
||||||
repo</a> | <a
|
|
||||||
href="http://tilde.town/~endorphant/blog/20160510.html">state
|
|
||||||
of the ttbp</a></h2> <div class="box">""")
|
|
||||||
|
|
||||||
outfile.write(mistune.markdown(open(os.path.join(SOURCE, "..", "README.md"), "r").read()))
|
|
||||||
outfile.write("""
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
""")
|
|
||||||
outfile.close()
|
|
||||||
#############
|
#############
|
||||||
#############
|
#############
|
||||||
#############
|
#############
|
||||||
|
|
28
bin/ttbp.py
28
bin/ttbp.py
|
@ -1,5 +1,33 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
'''
|
||||||
|
ttbp: tilde town blogging platform
|
||||||
|
(also known as the feels engine)
|
||||||
|
a console-based blogging program developed for tilde.town
|
||||||
|
copyright (c) 2016 ~endorphant (endorphant@tilde.town)
|
||||||
|
|
||||||
|
ttbp.py:
|
||||||
|
the main console interface
|
||||||
|
|
||||||
|
GNU GPL BOILERPLATE:
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
the complete codebase is available at:
|
||||||
|
https://github.com/modgethanc/ttbp
|
||||||
|
'''
|
||||||
|
|
||||||
|
import os
|
||||||
import os
|
import os
|
||||||
import random
|
import random
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
19
bin/util.py
19
bin/util.py
|
@ -1,5 +1,24 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
'''
|
||||||
|
util.py: frequently used terminal and text processing utilities
|
||||||
|
copyright (c) 2016 ~endorphant (endorphant@tilde.town)
|
||||||
|
|
||||||
|
GNU GPL BOILERPLATE:
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
'''
|
||||||
|
|
||||||
import inflect
|
import inflect
|
||||||
import time
|
import time
|
||||||
import random
|
import random
|
||||||
|
|
|
@ -7,12 +7,14 @@
|
||||||
"good afternoon",
|
"good afternoon",
|
||||||
"good day",
|
"good day",
|
||||||
"good evening",
|
"good evening",
|
||||||
"welcome back"
|
"welcome back",
|
||||||
|
"nice to see you"
|
||||||
],
|
],
|
||||||
"bye":[
|
"bye":[
|
||||||
"see you later, space cowboy",
|
"see you later, space cowboy",
|
||||||
"bye, townie",
|
"bye, townie",
|
||||||
"until next time, friend"
|
"until next time, friend",
|
||||||
|
"come back whenever"
|
||||||
],
|
],
|
||||||
"friend":[
|
"friend":[
|
||||||
"friend",
|
"friend",
|
||||||
|
|
Loading…
Reference in New Issue