mirror of
https://github.com/samsonjs/vdirsyncer.git
synced 2026-04-27 14:57:41 +00:00
Fetch displaynames asynchronously
This commit is contained in:
parent
1a1f6f0788
commit
8d69b73c9e
3 changed files with 30 additions and 24 deletions
|
|
@ -211,11 +211,9 @@ def discover(ctx, pairs, list):
|
||||||
conn = aiohttp.TCPConnector(limit_per_host=16)
|
conn = aiohttp.TCPConnector(limit_per_host=16)
|
||||||
|
|
||||||
for pair_name in pairs or config.pairs:
|
for pair_name in pairs or config.pairs:
|
||||||
pair = config.get_pair(pair_name)
|
|
||||||
|
|
||||||
await discover_collections(
|
await discover_collections(
|
||||||
status_path=config.general["status_path"],
|
status_path=config.general["status_path"],
|
||||||
pair=pair,
|
pair=config.get_pair(pair_name),
|
||||||
from_cache=False,
|
from_cache=False,
|
||||||
list_collections=list,
|
list_collections=list,
|
||||||
connector=conn,
|
connector=conn,
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import string
|
import string
|
||||||
|
|
@ -206,7 +208,7 @@ class Config:
|
||||||
else:
|
else:
|
||||||
return expand_fetch_params(args)
|
return expand_fetch_params(args)
|
||||||
|
|
||||||
def get_pair(self, pair_name):
|
def get_pair(self, pair_name: str) -> PairConfig:
|
||||||
try:
|
try:
|
||||||
return self.pairs[pair_name]
|
return self.pairs[pair_name]
|
||||||
except KeyError as e:
|
except KeyError as e:
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,7 @@ async def collections_for_pair(
|
||||||
b_discovered = _DiscoverResult(pair.config_b, connector=connector)
|
b_discovered = _DiscoverResult(pair.config_b, connector=connector)
|
||||||
|
|
||||||
if list_collections:
|
if list_collections:
|
||||||
|
# TODO: We should gather data and THEN print, so it can be async.
|
||||||
await _print_collections(
|
await _print_collections(
|
||||||
pair.config_a["instance_name"],
|
pair.config_a["instance_name"],
|
||||||
a_discovered.get_self,
|
a_discovered.get_self,
|
||||||
|
|
@ -275,27 +276,32 @@ async def _print_collections(
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
logger.info(f"{instance_name}:")
|
logger.info(f"{instance_name}:")
|
||||||
|
tasks = []
|
||||||
for args in discovered.values():
|
for args in discovered.values():
|
||||||
collection = args["collection"]
|
tasks.append(_print_single_collection(args, instance_name, connector))
|
||||||
if collection is None:
|
|
||||||
continue
|
|
||||||
|
|
||||||
args["instance_name"] = instance_name
|
await asyncio.gather(*tasks)
|
||||||
try:
|
|
||||||
storage = await storage_instance_from_config(
|
|
||||||
args,
|
|
||||||
create=False,
|
|
||||||
connector=connector,
|
|
||||||
)
|
|
||||||
displayname = await storage.get_meta("displayname")
|
|
||||||
except Exception:
|
|
||||||
displayname = ""
|
|
||||||
|
|
||||||
logger.info(
|
|
||||||
" - {}{}".format(
|
async def _print_single_collection(args, instance_name, connector):
|
||||||
json.dumps(collection),
|
collection = args["collection"]
|
||||||
f' ("{displayname}")'
|
if collection is None:
|
||||||
if displayname and displayname != collection
|
return
|
||||||
else "",
|
|
||||||
)
|
args["instance_name"] = instance_name
|
||||||
|
try:
|
||||||
|
storage = await storage_instance_from_config(
|
||||||
|
args,
|
||||||
|
create=False,
|
||||||
|
connector=connector,
|
||||||
)
|
)
|
||||||
|
displayname = await storage.get_meta("displayname")
|
||||||
|
except Exception:
|
||||||
|
displayname = ""
|
||||||
|
|
||||||
|
logger.info(
|
||||||
|
" - {}{}".format(
|
||||||
|
json.dumps(collection),
|
||||||
|
f' ("{displayname}")' if displayname and displayname != collection else "",
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue