Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions plextraktsync/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,7 @@ def watched_shows():


@command()
@click.option("--urls-expire-after", is_flag=True, help="Print urls_expire_after configuration")
def config():
"""
Print user config for debugging and bug reports.
Expand Down
25 changes: 20 additions & 5 deletions plextraktsync/commands/config.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,27 @@
from plextraktsync.console import print


def config(print=print):
def dump(data, print=None):
"""
Print config serialized as yaml.
If print is None, return the produced string instead.
"""
from plextraktsync.config.ConfigLoader import ConfigLoader

dump = ConfigLoader.dump_yaml(None, data)
if print is None:
return dump
print(dump)


def config(urls_expire_after: bool, print=print):
from plextraktsync.factory import factory
config = factory.config

print(f"# Config File: {config.config_yml}")
config.dump(print=print)
if urls_expire_after:
print("# HTTP Cache")
dump(config.http_cache.serialize(), print=print)
return

print("# HTTP Cache")
config.http_cache.dump(print=print)
print(f"# Config File: {config.config_yml}")
dump(config.serialize(), print=print)
6 changes: 5 additions & 1 deletion plextraktsync/config/Config.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,14 +130,18 @@ def initialize(self):
"$PTS_CACHE_DIR", cache_dir
)

def dump(self, print=None):
def serialize(self):
"""
Print config serialized as yaml.
If print is None, return the produced string instead.
"""
data = dict(self)
for key in self.env_keys:
del data[key]
return data

def dump(self, print=None):
data = self.serialize()
dump = ConfigLoader.dump_yaml(None, data)
if print is None:
return dump
Expand Down
13 changes: 8 additions & 5 deletions plextraktsync/config/HttpCacheConfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,17 +105,20 @@ def urls_expire_after(self) -> ExpirationPatterns:

return policy

def serialize(self):
return {
"http_cache": {
"policy": self.urls_expire_after,
},
}

def dump(self, print=None):
"""
Print config serialized as yaml.
If print is None, return the produced string instead.
"""
from plextraktsync.config.ConfigLoader import ConfigLoader
data = {
"http_cache": {
"policy": self.urls_expire_after,
},
}
data = self.serialize()
dump = ConfigLoader.dump_yaml(None, data)
if print is None:
return dump
Expand Down