mirror of
https://github.com/ApfelTeeSaft/SplitNotes.git
synced 2026-08-27 03:43:33 +00:00
Initial files
Added initial files that were created without version control. A number of .py files and a resource folder with a couple of icons.
This commit is contained in:
+122
@@ -0,0 +1,122 @@
|
||||
import tkinter.filedialog as file_dia
|
||||
import os.path as path
|
||||
|
||||
import config
|
||||
|
||||
"""
|
||||
NOTE STANDARD FORMATTING
|
||||
|
||||
empty newlines separate notes for different splits
|
||||
|
||||
lines that start and end with [ ] are ignored for notes.
|
||||
these can be used for titles.
|
||||
(ex. [Split1] is not included in notes)
|
||||
|
||||
all other lines of text are added as notes
|
||||
"""
|
||||
|
||||
def get_note_lines(file_path):
|
||||
"""
|
||||
Reads file at given path and returns
|
||||
a list containing all rows of text in given file.
|
||||
Returns false if file can not be read.
|
||||
"""
|
||||
|
||||
|
||||
#check so file isn't too big
|
||||
if path.getsize(file_path) > config.MAX_FILE_SIZE:
|
||||
return False
|
||||
|
||||
try:
|
||||
notes_file = open(file_path, "r")
|
||||
except:
|
||||
return False
|
||||
|
||||
#read file line per line
|
||||
f_lines = []
|
||||
keep_reading = True
|
||||
while keep_reading:
|
||||
cur_line = notes_file.readline()
|
||||
|
||||
if cur_line:
|
||||
f_lines.append(cur_line)
|
||||
else:
|
||||
keep_reading = False
|
||||
|
||||
return f_lines
|
||||
|
||||
|
||||
def encode_notes(note_lines):
|
||||
"""
|
||||
Takes a list containing strings.
|
||||
Encodes given strings according to the note formatting.
|
||||
Returns the list containing the notes for every split.
|
||||
"""
|
||||
|
||||
def is_title(line):
|
||||
if not line:
|
||||
return False
|
||||
|
||||
return (line[0] == "[") and (line[-1] == "]")
|
||||
|
||||
def is_newline(line):
|
||||
return (line == "\n") or (line == "\r")
|
||||
|
||||
def remove_new_line(line):
|
||||
if (len(line) >= 1) and (is_newline(line[-1])):
|
||||
return line[:-1]
|
||||
else:
|
||||
return line
|
||||
|
||||
note_list = []
|
||||
cur_notes = ""
|
||||
|
||||
for line in note_lines:
|
||||
#remove whitespace at beginning and end
|
||||
line = line.strip(" ")
|
||||
|
||||
if is_newline(line):
|
||||
if cur_notes:
|
||||
note_list.append(cur_notes)
|
||||
cur_notes = ""
|
||||
else:
|
||||
line = remove_new_line(line)
|
||||
if not is_title(line):
|
||||
cur_notes += line + "\n" #newline
|
||||
|
||||
if cur_notes:
|
||||
note_list.append(cur_notes)
|
||||
|
||||
return note_list
|
||||
|
||||
|
||||
def get_notes(file_path):
|
||||
"""
|
||||
Takes a path to a file and returns a list with the notes
|
||||
in the file encoded according to the note fromatting.
|
||||
|
||||
Returns False if file is empty.
|
||||
"""
|
||||
note_lines = get_note_lines(file_path)
|
||||
|
||||
if not note_lines:
|
||||
return False
|
||||
|
||||
note_list = encode_notes(note_lines)
|
||||
|
||||
return note_list
|
||||
|
||||
|
||||
def select_file():
|
||||
"""
|
||||
Opens a file select window.
|
||||
Returns False upon no file selection.
|
||||
Otherwise returns absolute path to selected file.
|
||||
"""
|
||||
|
||||
file = file_dia.askopenfilename()
|
||||
|
||||
if file:
|
||||
return file
|
||||
else:
|
||||
return False
|
||||
Reference in New Issue
Block a user