Skip to content
This repository was archived by the owner on May 8, 2022. It is now read-only.

Commit 0260e04

Browse files
committed
Add config option to disable storing XMLTV cache in RAM. Closes #35
1 parent d378e7a commit 0260e04

11 files changed

+56
-9
lines changed

html/js/base_ts.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ var WS_AVAILABLE = false;
88
// Menu
99
var menuItems = new Array();
1010
menuItems.push(new MainMenuItem("playlist", "{{.mainMenu.item.playlist}}", "m3u.png", "{{.mainMenu.headline.playlist}}"));
11-
//menuItems.push(new MainMenuItem("pmsID", "{{.mainMenu.item.pmsID}}", "number.png", "{{.mainMenu.headline.pmsID}}"))
1211
menuItems.push(new MainMenuItem("filter", "{{.mainMenu.item.filter}}", "filter.png", "{{.mainMenu.headline.filter}}"));
1312
menuItems.push(new MainMenuItem("xmltv", "{{.mainMenu.item.xmltv}}", "xmltv.png", "{{.mainMenu.headline.xmltv}}"));
1413
menuItems.push(new MainMenuItem("mapping", "{{.mainMenu.item.mapping}}", "mapping.png", "{{.mainMenu.headline.mapping}}"));
@@ -18,7 +17,7 @@ menuItems.push(new MainMenuItem("log", "{{.mainMenu.item.log}}", "log.png", "{{.
1817
menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.png", "{{.mainMenu.headline.logout}}"));
1918
// Settings categories
2019
var settingsCategory = new Array();
21-
settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,disallowURLDuplicates,api"));
20+
settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,disallowURLDuplicates,clearXMLTVCache,api"));
2221
settingsCategory.push(new SettingsCategoryItem("{{.settings.category.mapping}}", "defaultMissingEPG,enableMappedChannels"));
2322
settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images"));
2423
settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,storeBufferInRAM,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options"));

html/js/settings_ts.js

+14
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,17 @@ class SettingsCategory {
249249
setting.appendChild(tdLeft);
250250
setting.appendChild(tdRight);
251251
break;
252+
case "clearXMLTVCache":
253+
var tdLeft = document.createElement("TD");
254+
tdLeft.innerHTML = "{{.settings.clearXMLTVCache.title}}" + ":";
255+
var tdRight = document.createElement("TD");
256+
var input = content.createCheckbox(settingsKey);
257+
input.checked = data;
258+
input.setAttribute("onchange", "javascript: this.className = 'changed'");
259+
tdRight.appendChild(input);
260+
setting.appendChild(tdLeft);
261+
setting.appendChild(tdRight);
262+
break;
252263
case "api":
253264
var tdLeft = document.createElement("TD");
254265
tdLeft.innerHTML = "{{.settings.api.title}}" + ":";
@@ -457,6 +468,9 @@ class SettingsCategory {
457468
case "update":
458469
text = "{{.settings.update.description}}";
459470
break;
471+
case "clearXMLTVCache":
472+
text = "{{.settings.clearXMLTVCache.description}}";
473+
break;
460474
case "api":
461475
text = "{{.settings.api.description}}";
462476
break;

html/lang/en.json

+5
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,11 @@
394394
"title": "API Interface",
395395
"description": "Via API interface it is possible to send commands to xTeVe. API documentation is <a href='https://github.com/xteve-project/xTeVe-Documentation/blob/master/en/configuration.md#api'>here</a>"
396396
},
397+
"clearXMLTVCache":
398+
{
399+
"title": "Clear XMLTV cache",
400+
"description": "If checked, do not keep XMLTV cache in memory.<br>Significally reduces RAM usage in idle mode,<br>but significally slowing down every subsequent update in XEPG database."
401+
},
397402
"defaultMissingEPG":
398403
{
399404
"title": "Fill Missing EPG Data",

src/struct-system.go

+1
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,7 @@ type SettingsStruct struct {
284284
BufferSize int `json:"buffer.size.kb"`
285285
BufferTimeout float64 `json:"buffer.timeout"`
286286
CacheImages bool `json:"cache.images"`
287+
ClearXMLTVCache bool `json:"clearXMLTVCache"`
287288
DefaultMissingEPG string `json:"defaultMissingEPG,required"`
288289
DisallowURLDuplicates bool `json:"disallowURLDuplicates"`
289290
EnableMappedChannels bool `json:"enableMappedChannels"`

src/struct-webserver.go

+1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ type RequestStruct struct {
2929
BufferSize *int `json:"buffer.size.kb,omitempty"`
3030
BufferTimeout *float64 `json:"buffer.timeout,omitempty"`
3131
CacheImages *bool `json:"cache.images,omitempty"`
32+
ClearXMLTVCache *bool `json:"clearXMLTVCache,omitempty"`
3233
DefaultMissingEPG *string `json:"defaultMissingEPG,omitempty"`
3334
DisallowURLDuplicates *bool `json:"disallowURLDuplicates,omitempty"`
3435
EnableMappedChannels *bool `json:"enableMappedChannels,omitempty"`

src/system.go

+1
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ func loadSettings() (settings SettingsStruct, err error) {
116116
defaults["buffer.timeout"] = 500
117117
defaults["buffer"] = "-"
118118
defaults["cache.images"] = false
119+
defaults["clearXMLTVCache"] = false
119120
defaults["defaultMissingEPG"] = "-"
120121
defaults["disallowURLDuplicates"] = false
121122
defaults["enableMappedChannels"] = false

src/webUI.go

+3-3
Large diffs are not rendered by default.

src/webserver.go

+5
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,7 @@ func WS(w http.ResponseWriter, r *http.Request) {
462462
var previousTLSMode = Settings.TLSMode
463463
var previousHostIP = Settings.HostIP
464464
var previousStoreBufferInRAM = Settings.StoreBufferInRAM
465+
var previousClearXMLTVCache = Settings.ClearXMLTVCache
465466

466467
response.Settings, err = updateServerSettings(request)
467468
if err == nil {
@@ -494,6 +495,10 @@ func WS(w http.ResponseWriter, r *http.Request) {
494495
initBufferVFS(Settings.StoreBufferInRAM)
495496
}
496497

498+
if Settings.ClearXMLTVCache && previousClearXMLTVCache == false {
499+
clearXMLTVCache()
500+
}
501+
497502
}
498503

499504
case "saveFilesM3U":

src/xepg.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,9 @@ func buildXEPG(background bool) {
9696

9797
System.ScanInProgress = 0
9898

99-
// clearXMLTVCache()
99+
if Settings.ClearXMLTVCache {
100+
clearXMLTVCache()
101+
}
100102

101103
}()
102104

@@ -136,7 +138,9 @@ func buildXEPG(background bool) {
136138

137139
System.ScanInProgress = 0
138140

139-
// clearXMLTVCache()
141+
if Settings.ClearXMLTVCache {
142+
clearXMLTVCache()
143+
}
140144

141145
}()
142146

ts/base_ts.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ var WS_AVAILABLE = false
1010
// Menu
1111
var menuItems = new Array()
1212
menuItems.push(new MainMenuItem("playlist", "{{.mainMenu.item.playlist}}", "m3u.png", "{{.mainMenu.headline.playlist}}"))
13-
//menuItems.push(new MainMenuItem("pmsID", "{{.mainMenu.item.pmsID}}", "number.png", "{{.mainMenu.headline.pmsID}}"))
1413
menuItems.push(new MainMenuItem("filter", "{{.mainMenu.item.filter}}", "filter.png", "{{.mainMenu.headline.filter}}"))
1514
menuItems.push(new MainMenuItem("xmltv", "{{.mainMenu.item.xmltv}}", "xmltv.png", "{{.mainMenu.headline.xmltv}}"))
1615
menuItems.push(new MainMenuItem("mapping", "{{.mainMenu.item.mapping}}", "mapping.png", "{{.mainMenu.headline.mapping}}"))
@@ -21,7 +20,7 @@ menuItems.push(new MainMenuItem("logout", "{{.mainMenu.item.logout}}", "logout.p
2120

2221
// Settings categories
2322
var settingsCategory = new Array()
24-
settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,disallowURLDuplicates,api"))
23+
settingsCategory.push(new SettingsCategoryItem("{{.settings.category.general}}", "tlsMode,xteveAutoUpdate,hostIP,tuner,epgSource,disallowURLDuplicates,clearXMLTVCache,api"))
2524
settingsCategory.push(new SettingsCategoryItem("{{.settings.category.mapping}}", "defaultMissingEPG,enableMappedChannels"))
2625
settingsCategory.push(new SettingsCategoryItem("{{.settings.category.files}}", "update,files.update,temp.path,cache.images,xepg.replace.missing.images"))
2726
settingsCategory.push(new SettingsCategoryItem("{{.settings.category.streaming}}", "buffer,udpxy,buffer.size.kb,storeBufferInRAM,buffer.timeout,user.agent,ffmpeg.path,ffmpeg.options,vlc.path,vlc.options"))

ts/settings_ts.ts

+18
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,20 @@ class SettingsCategory {
314314
setting.appendChild(tdRight)
315315
break
316316

317+
case "clearXMLTVCache":
318+
var tdLeft = document.createElement("TD")
319+
tdLeft.innerHTML = "{{.settings.clearXMLTVCache.title}}" + ":"
320+
321+
var tdRight = document.createElement("TD")
322+
var input = content.createCheckbox(settingsKey)
323+
input.checked = data
324+
input.setAttribute("onchange", "javascript: this.className = 'changed'")
325+
tdRight.appendChild(input)
326+
327+
setting.appendChild(tdLeft)
328+
setting.appendChild(tdRight)
329+
break
330+
317331
case "api":
318332
var tdLeft = document.createElement("TD")
319333
tdLeft.innerHTML = "{{.settings.api.title}}" + ":"
@@ -591,6 +605,10 @@ class SettingsCategory {
591605
text = "{{.settings.update.description}}"
592606
break
593607

608+
case "clearXMLTVCache":
609+
text = "{{.settings.clearXMLTVCache.description}}"
610+
break
611+
594612
case "api":
595613
text = "{{.settings.api.description}}"
596614
break

0 commit comments

Comments
 (0)