idk
This commit is contained in:
parent
c972d1f15e
commit
2d2c686da8
|
@ -59,10 +59,13 @@ def makeDictFromTags(tagFile, key='name', value='file'):
|
||||||
|
|
||||||
def getAllFiles():
|
def getAllFiles():
|
||||||
# Returns a set containing all the files we wish to make public
|
# Returns a set containing all the files we wish to make public
|
||||||
return makeSetFromTags(loadTagFile(tagFile))
|
return makeSetFromTags(loadTagFile())
|
||||||
|
|
||||||
def getAllTags():
|
def getAllTags():
|
||||||
# Returns a dictionary with:
|
# Returns a dictionary with:
|
||||||
# - key as tag titles
|
# - key as tag titles
|
||||||
# - values as files that have the key in their tags
|
# - values as files that have the key in their tags
|
||||||
return makeDictFromTags(loadTagFile())
|
return makeDictFromTags(loadTagFile())
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
print(getAllTags().keys())
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
#! /usr/bin/env python3
|
#! /usr/bin/env python3
|
||||||
|
|
||||||
import ctags
|
|
||||||
from ctags import CTags, TagEntry
|
from ctags import CTags, TagEntry
|
||||||
import sys
|
import sys
|
||||||
from icecream import ic
|
from icecream import ic
|
||||||
|
@ -8,7 +7,7 @@ import os
|
||||||
import shutil
|
import shutil
|
||||||
import fileinput
|
import fileinput
|
||||||
|
|
||||||
def loadTagFile(path='.vimwiki_tags'):
|
def loadTagFile(path='/home/anish/vimwiki/.vimwiki_tags'):
|
||||||
# Available file information keys:
|
# Available file information keys:
|
||||||
# opened - was the tag file successfully opened?
|
# opened - was the tag file successfully opened?
|
||||||
# error_number - errno value when 'opened' is false
|
# error_number - errno value when 'opened' is false
|
||||||
|
@ -22,9 +21,28 @@ def loadTagFile(path='.vimwiki_tags'):
|
||||||
tagFile = CTags(path)
|
tagFile = CTags(path)
|
||||||
return tagFile
|
return tagFile
|
||||||
except:
|
except:
|
||||||
print("No tagfile at {}".farmat(path))
|
print("No tagfile at {}".format(path))
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
bad_tags = [('Public', 'public'), ('Travel', 'travel'), ('jrl', 'jrnl'), ('Kitaab', 'kitaab'), ('Dream', 'dream'), ('Story', 'story'), ('Review', 'review'), ('private', 'priv'), ('ideas', 'idea'), ('quotes', 'quote'), ('rocks', 'rock'), ('sec', 'cybsec'), ('sealight.services', 'sealight')]
|
||||||
|
bad_tags_only = [x[0] for x in bad_tags]
|
||||||
|
|
||||||
|
def replaceBadTags(tagFile):
|
||||||
|
# no higher order function sadness
|
||||||
|
# this does the same thing as loopThrough but runs a different function
|
||||||
|
# (loop through looks for single character tags)
|
||||||
|
# We look for any tag in the list and replace it
|
||||||
|
entry = TagEntry()
|
||||||
|
tag = tagFile.next(entry)
|
||||||
|
tagErrors = set()
|
||||||
|
print(bad_tags_only)
|
||||||
|
while tag:
|
||||||
|
tag = entry['name'].decode('utf-8')
|
||||||
|
if tag in bad_tags_only:
|
||||||
|
tagErrors.add(entry['file'])
|
||||||
|
tag = tagFile.next(entry)
|
||||||
|
return tagErrors
|
||||||
|
|
||||||
def loopThrough(tagFile):
|
def loopThrough(tagFile):
|
||||||
# Available TagEntry keys:
|
# Available TagEntry keys:
|
||||||
# name - name of tag
|
# name - name of tag
|
||||||
|
@ -46,12 +64,36 @@ def loopThrough(tagFile):
|
||||||
if len(entry['name']) <= 1:
|
if len(entry['name']) <= 1:
|
||||||
tagErrors.add(entry['file'])
|
tagErrors.add(entry['file'])
|
||||||
errorTagNames.add(entry['name'])
|
errorTagNames.add(entry['name'])
|
||||||
else:
|
|
||||||
print("Good tag found: {}".format(entry['name']))
|
|
||||||
tag = tagFile.next(entry)
|
tag = tagFile.next(entry)
|
||||||
ic(errorTagNames)
|
ic(errorTagNames)
|
||||||
return tagErrors
|
return tagErrors
|
||||||
|
|
||||||
|
def fixBadTags(errors):
|
||||||
|
''' More lack of higher order function sadness
|
||||||
|
same as fixErrors, but not really
|
||||||
|
'''
|
||||||
|
fileBase = '/home/anish/vimwiki/'
|
||||||
|
for v in errors:
|
||||||
|
print("Fixing {}...".format(v))
|
||||||
|
fileName = fileBase + getFileName(v)
|
||||||
|
newFile = ""
|
||||||
|
with open(fileName, 'r') as f:
|
||||||
|
newFile = newFile + f.readline()
|
||||||
|
line = f.readline()
|
||||||
|
# bad and ungly
|
||||||
|
for bad_tag in bad_tags:
|
||||||
|
line = line.replace(bad_tag[0], bad_tag[1])
|
||||||
|
newFile = newFile + line
|
||||||
|
for line in f.readlines():
|
||||||
|
newFile = newFile + line
|
||||||
|
with open(fileName, 'w') as f:
|
||||||
|
for line in newFile:
|
||||||
|
f.write(line)
|
||||||
|
print("Written new file...")
|
||||||
|
print()
|
||||||
|
print(newFile)
|
||||||
|
|
||||||
|
|
||||||
def fixErrors(errors):
|
def fixErrors(errors):
|
||||||
''' Replaces :: with :, which seems to be the error for many of the tags '''
|
''' Replaces :: with :, which seems to be the error for many of the tags '''
|
||||||
fileBase = '/home/anish/vimwiki/'
|
fileBase = '/home/anish/vimwiki/'
|
||||||
|
@ -61,6 +103,19 @@ def fixErrors(errors):
|
||||||
newFile = ""
|
newFile = ""
|
||||||
with open(fileName, 'r') as f:
|
with open(fileName, 'r') as f:
|
||||||
for line in f.readlines():
|
for line in f.readlines():
|
||||||
|
line = line.replace(":]:]:", "")
|
||||||
|
line = line.replace(":[:[:", "")
|
||||||
|
line = line.replace("G:r:a:t:i:t:u:d:e:", ":grat:")
|
||||||
|
line = line.replace(":J:o:u:r:n:a:l:", ":jrnl:")
|
||||||
|
line = line.replace(":R:e:v:i:e:w:", ":review:")
|
||||||
|
line = line.replace(":T:r:a:v:e:l:", ":travel:")
|
||||||
|
line = line.replace(":D:r:e:a:m:", ":dream:")
|
||||||
|
line = line.replace("%date", "\n%date")
|
||||||
|
line = line.replace("{date}", createDateStringFromFile(v)+"\n\n")
|
||||||
|
line = line.replace("{title}", "{title}\n")
|
||||||
|
line = line.replace(" :", ":")
|
||||||
|
line = line.replace("::", ":")
|
||||||
|
line = line.replace(" :", ":")
|
||||||
line = line.replace("::", ":")
|
line = line.replace("::", ":")
|
||||||
newFile = newFile + line
|
newFile = newFile + line
|
||||||
with open(fileName, 'w') as f:
|
with open(fileName, 'w') as f:
|
||||||
|
@ -70,15 +125,37 @@ def fixErrors(errors):
|
||||||
print()
|
print()
|
||||||
print(newFile)
|
print(newFile)
|
||||||
|
|
||||||
def printErrors(errors):
|
def createDateStringFromFile(error):
|
||||||
|
file = getFileName(error).replace("jrnl/", "").replace(".wiki", "")
|
||||||
|
dateConverted = file.split('-') # create date and time
|
||||||
|
dateConvertedSplit = list(dateConverted[0]) # splite date
|
||||||
|
dateConvertedSplit.insert(2, '-') # add - between year and month
|
||||||
|
dateConvertedSplit.insert(5, '-') # add - between month and day
|
||||||
|
dateConvertedSplit.insert(0, '20') # add 20 to year
|
||||||
|
dateConverted[0] = "".join(dateConvertedSplit) # make date a string
|
||||||
|
dateConverted[1] = dateConverted[1][:2] + ":" + dateConverted[1][2:] # add colon in between hour and minute
|
||||||
|
dateConverted = " ".join(dateConverted) # make date and time a string
|
||||||
|
return dateConverted
|
||||||
|
|
||||||
|
def printErrorFiles(errors):
|
||||||
fileBase = '/home/anish/vimwiki/'
|
fileBase = '/home/anish/vimwiki/'
|
||||||
for v in errors:
|
for v in errors:
|
||||||
fileName = fileBase + getFileName(v)
|
fileName = fileBase + getFileName(v)
|
||||||
print("Reading {}...".format(v))
|
print("Reading {}...".format(v))
|
||||||
with open(fileName, 'r') as f:
|
with open(fileName, 'r') as f:
|
||||||
f.readline()
|
#f.readline()
|
||||||
ic(f.readline())
|
ic(f.readline())
|
||||||
|
|
||||||
|
def listTags(tagFile):
|
||||||
|
entry = TagEntry()
|
||||||
|
tag = tagFile.next(entry)
|
||||||
|
allTags = set()
|
||||||
|
while tag:
|
||||||
|
tag = entry['name'].decode('utf-8')
|
||||||
|
allTags.add(tag)
|
||||||
|
tag = tagFile.next(entry)
|
||||||
|
return allTags
|
||||||
|
|
||||||
def getFileName(f):
|
def getFileName(f):
|
||||||
return str(f, encoding="utf-8")
|
return str(f, encoding="utf-8")
|
||||||
|
|
||||||
|
@ -93,8 +170,9 @@ def getBackupFiles(errors):
|
||||||
|
|
||||||
if __name__=='__main__':
|
if __name__=='__main__':
|
||||||
tagFile = loadTagFile()
|
tagFile = loadTagFile()
|
||||||
errors = loopThrough(tagFile)
|
#ic(tagFile)
|
||||||
printErrors(errors)
|
#errors = replaceBadTags(tagFile)
|
||||||
|
#fixBadTags(errors)
|
||||||
|
print(sorted(listTags(tagFile)))
|
||||||
#ic(errors)
|
#ic(errors)
|
||||||
#getBackupFiles(errors)
|
#getBackupFiles(errors)
|
||||||
#fixErrors(errors)
|
|
||||||
|
|
Loading…
Reference in a new issue