Skip to content

Commit e01c305

Browse files
committed
[VEX-32]: Added option to ignore inactive days
1 parent 493bb6e commit e01c305

File tree

4 files changed

+41
-20
lines changed

4 files changed

+41
-20
lines changed

src/VexTrack.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -501,6 +501,12 @@ def _fixed_map(style, style_name, option):
501501
selectedForegroundSettingBtn = colorButton.ColorButton(settingsContainer, settings["selectedForeground"])
502502
selectedForegroundSettingBtn.grid(padx=8, pady=2, column=3, row=6, sticky="we")
503503

504+
ignoreInactiveDaysSettingVar = IntVar()
505+
ttk.Label(settingsContainer, text="Ignore inactive days in certain statistics:").grid(padx=8, pady=2, columnspan=2, column=0, row=7, sticky="we")
506+
ignoreInactiveDaysSettingCheck = ttk.Checkbutton(settingsContainer, onvalue=1, offvalue=0, variable=ignoreInactiveDaysSettingVar)
507+
ignoreInactiveDaysSettingCheck.grid(padx=8, pady=2, columnspan=2, column=2, row=7, sticky="we")
508+
ignoreInactiveDaysSettingVar.set(settings["ignoreInactiveDays"])
509+
504510
settingsBtnContainer = tk.Frame(settingsTab)
505511
settingsBtnContainer.pack(fill="x")
506512

@@ -699,6 +705,7 @@ def updateSettings():
699705
updateBufferDays = False
700706

701707
settings["useHistoryColors"] = enableColorsSettingVar.get()
708+
settings["ignoreInactiveDays"] = ignoreInactiveDaysSettingVar.get()
702709

703710
settings["winBackground"] = winBackgroundSettingBtn.color
704711
settings["winForeground"] = winForegroundSettingBtn.color
@@ -1061,6 +1068,7 @@ def updateSettingsUI(updateBufferDays):
10611068
bufferDaysSettingEntry.delete(0, len(str(bufferDaysSettingVar.get())))
10621069
bufferDaysSettingEntry.insert(0, settings["bufferDays"])
10631070
enableColorsSettingVar.set(settings["useHistoryColors"])
1071+
ignoreInactiveDaysSettingVar.set(settings["ignoreInactiveDays"])
10641072

10651073
winBackgroundSettingBtn.setValues(color=settings["winBackground"])
10661074
winForegroundSettingBtn.setValues(color=settings["winForeground"])
@@ -1154,7 +1162,7 @@ def updateValues(updateBufferDays=True):
11541162
levelRemainingLabel["text"] = str(levelRemaining) + " XP"
11551163
levelTotalLabel["text"] = str(levelTotal) + " XP"
11561164

1157-
miscRemainigDays, miscAverage, miscDeviationIdeal, miscDeviationDaily, miscStrongestDayDate, miscStrongestDayAmount, miscWeakestDayDate, miscWeakestDayAmount = core.calcMiscValues(data, yAxisYou, yAxisIdeal, yAxisDailyIdeal, epilogueVar.get(), seasonIndex.get())
1165+
miscRemainigDays, miscAverage, miscDeviationIdeal, miscDeviationDaily, miscStrongestDayDate, miscStrongestDayAmount, miscWeakestDayDate, miscWeakestDayAmount = core.calcMiscValues(data, yAxisYou, yAxisIdeal, yAxisDailyIdeal, epilogueVar.get(), seasonIndex.get(), settings)
11581166
miscRemainingDaysLabel["text"] = str(miscRemainigDays) + " Days"
11591167
miscAverageLabel["text"] = str(miscAverage) + " XP"
11601168
miscIdealDeviationLabel["text"] = str(miscDeviationIdeal) + " XP"
@@ -1191,6 +1199,7 @@ def updateValues(updateBufferDays=True):
11911199

11921200
bufferDaysSettingVar.trace("w", lambda a, b, c: updateSettings())
11931201
enableColorsSettingCheck.configure(command=lambda: updateSettings())
1202+
ignoreInactiveDaysSettingCheck.configure(command=lambda: updateSettings())
11941203

11951204
winBackgroundSettingBtn.setValues(command=lambda: updateSettings())
11961205
winForegroundSettingBtn.setValues(command=lambda: updateSettings())

src/vars.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
DEFAULT_BUFFER_DAYS = 8
3333
DEFAULT_USE_HISTORY_COLORS = 1
34+
DEFAULT_IGNORE_INACTIVE_DAYS = 0
3435

3536
DEFAULT_NONE_BG_COLOR = "#939393"
3637
DEFAULT_WIN_BG_COLOR = "#AFE0D2"

src/vextrackLib/core.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ def calcLevelValues(completeData, epilogue, seasonIndex):
103103

104104
return levelProgress, levelCollected, levelRemaining, levelTotal
105105

106-
def calcMiscValues(completeData, yAxisYou, yAxisIdeal, yAxisDailyIdeal, epilogue, seasonIndex):
106+
def calcMiscValues(completeData, yAxisYou, yAxisIdeal, yAxisDailyIdeal, epilogue, seasonIndex, settings):
107107
data = completeData["seasons"][seasonIndex]
108108

109109
seasonEndDate = datetime.strptime(data["endDate"], "%d.%m.%Y")
@@ -126,9 +126,10 @@ def calcMiscValues(completeData, yAxisYou, yAxisIdeal, yAxisDailyIdeal, epilogue
126126
else:
127127
deltaDate = (currDate - prevDate)
128128

129-
for i in range(1, deltaDate.days):
130-
dailyXP.append({"date": (prevDate + timedelta(days=i)).strftime("%d.%m.%Y"), "amount": 0})
131-
index += 1
129+
if settings["ignoreInactiveDays"] == 0:
130+
for i in range(1, deltaDate.days):
131+
dailyXP.append({"date": (prevDate + timedelta(days=i)).strftime("%d.%m.%Y"), "amount": 0})
132+
index += 1
132133

133134
dailyXP.append({"date": currDate.strftime("%d.%m.%Y"), "amount": int(h["amount"])})
134135

src/vextrackLib/settings.py

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,24 @@
33
import os
44
import json
55

6+
defaultSettings = {
7+
"bufferDays": DEFAULT_BUFFER_DAYS,
8+
"useHistoryColors": DEFAULT_USE_HISTORY_COLORS,
9+
"ignoreInactiveDays": DEFAULT_IGNORE_INACTIVE_DAYS,
10+
"winBackground": DEFAULT_WIN_BG_COLOR,
11+
"winForeground": DEFAULT_WIN_FG_COLOR,
12+
"lossBackground": DEFAULT_LOSS_BG_COLOR,
13+
"lossForeground": DEFAULT_LOSS_FG_COLOR,
14+
"drawBackground": DEFAULT_DRAW_BG_COLOR,
15+
"drawForeground": DEFAULT_DRAW_FG_COLOR,
16+
"noneBackground": DEFAULT_NONE_BG_COLOR,
17+
"noneForeground": DEFAULT_NONE_FG_COLOR,
18+
"selectedBackground": DEFAULT_SELECTED_BG_COLOR,
19+
"selectedForeground": DEFAULT_SELECTED_FG_COLOR
20+
}
21+
622
def initSettings():
7-
settings = {
8-
"bufferDays": DEFAULT_BUFFER_DAYS,
9-
"useHistoryColors": DEFAULT_USE_HISTORY_COLORS,
10-
"winBackground": DEFAULT_WIN_BG_COLOR,
11-
"winForeground": DEFAULT_WIN_FG_COLOR,
12-
"lossBackground": DEFAULT_LOSS_BG_COLOR,
13-
"lossForeground": DEFAULT_LOSS_FG_COLOR,
14-
"drawBackground": DEFAULT_DRAW_BG_COLOR,
15-
"drawForeground": DEFAULT_DRAW_FG_COLOR,
16-
"noneBackground": DEFAULT_NONE_BG_COLOR,
17-
"noneForeground": DEFAULT_NONE_FG_COLOR,
18-
"selectedBackground": DEFAULT_SELECTED_BG_COLOR,
19-
"selectedForeground": DEFAULT_SELECTED_FG_COLOR
20-
}
21-
saveSettings(settings)
23+
saveSettings(defaultSettings)
2224

2325
def loadSettings():
2426
if not os.path.exists(SETTINGS_PATH):
@@ -27,6 +29,14 @@ def loadSettings():
2729
with open(SETTINGS_PATH, "r") as f:
2830
settings = json.loads(f.read())
2931

32+
sK = list(settings.keys())
33+
dsK = list(defaultSettings.keys())
34+
missingSettings = list(set(dsK) - set(sK))
35+
36+
for m in missingSettings:
37+
settings[m] = defaultSettings[m]
38+
saveSettings(settings)
39+
3040
return settings
3141

3242
def saveSettings(settings):

0 commit comments

Comments
 (0)