-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cards.py
159 lines (117 loc) · 3.78 KB
/
Cards.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#Import The Modules
import genanki
import sys
import os
import random
import sqlite3
import datetime as time
TEST_MODEL = genanki.Model(
1145059532, 'foomodel',
fields=[
{
'name': 'AField',
},
{
'name': 'BField',
},
],
templates=[
{
'name': 'card1',
'qfmt': '{{AField}}',
'afmt':
'<hr id="answer">'
'{{BField}}',
}
],
)
my_deck=genanki.Deck(
130036233123332166,
'Python Data Science')
#Iterate Through the Flashcards folder Right
def Cards(deck,model):
print('ran')
current=os.getcwd()
export=current+"/Export/"
flashcards=current+"/Flashcards"
media=[]
length=len(os.listdir(flashcards))
if length%2!=0:
raise FileExistsError('Missing')
total=Card_Database()
print(total)
start=total-(int(length/2))
total+=1
start+=1
print(start,total)
os.chdir(flashcards)
try:
for number in range(start,total):
index=str(number)
front=index+"Front.png"
back=index+"Back.png"
print(front,back)
note=genanki.Note(model,['<img src="{}">'.format(front),' <img src="{}">'.format(back)])
deck.add_note(note)
media.append(front)
media.append(back)
except:
raise FileExistsError('Missing')
genanki.Package(deck,media_files=media).write_to_file(
export+str(len(os.listdir(export))+1)+'.apkg'
)
os.chdir(current)
Backup=current+"/Backup/"
#Move Old Files to Backup Folder
try:
dir=Backup+str(len(os.listdir(Backup))+1)
os.mkdir(dir)
except:
print('failed')
for items in os.listdir(flashcards):
os.rename(flashcards+"/"+items,dir+"/"+items)
def New_Deck(name,id):
print('running new deck',type(id),id)
with sqlite3.connect("Decks.db") as con:
c=con.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS Decks
(name text, id real)''')
c.execute("SELECT * FROM Decks WHERE name=?",(name,))
entry=c.fetchone()
if entry is None:
c.execute("INSERT INTO Decks VALUES (?,?)",(name,id))
else:
return 'Deck Already Exists'
for rows in c.execute("SELECT * FROM Decks"):
print(type(rows),rows)
con.commit()
def Search_Decks():
with sqlite3.connect("Decks.db") as con:
c=con.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS Decks
(name text, id real)''')
c.execute('SELECT * FROM Decks')
items=c.fetchall()
return items
def Select_Deck(name):
with sqlite3.connect("Decks.db") as con:
c=con.cursor()
c.execute('SELECT * FROM Decks WHERE name=?',(name,))
item=c.fetchone()
if item:
return genanki.Deck(int(item[1]),item[0])
def Card_Database():
with sqlite3.connect("Cards.db") as con:
c=con.cursor()
c.execute("CREATE TABLE IF NOT EXISTS Cards (name integer, date blob) ")
amount=c.execute("SELECT COUNT(*) FROM Cards")
return amount.fetchone()[0]
def Insert_Card():
with sqlite3.connect("Cards.db") as con:
c=con.cursor()
amount=c.execute("SELECT COUNT(*) FROM Cards")
amount=amount.fetchone()[0]
t=time.datetime.now()
date="{}-{}-{} at {}:{}:{}".format(t.year,t.month,t.day,t.hour,t.minute,t.second)
print(date)
c.execute("INSERT INTO Cards VALUES (?,?)",(amount,date))