wordpress-markdown-blog-loader 1.5.0__tar.gz → 1.5.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/PKG-INFO +2 -2
  2. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/README.md +1 -1
  3. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/setup.py +1 -1
  4. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/src/wordpress_markdown_blog_loader/api.py +39 -18
  5. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/src/wordpress_markdown_blog_loader.egg-info/PKG-INFO +2 -2
  6. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/LICENSE +0 -0
  7. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/setup.cfg +0 -0
  8. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/src/wordpress_markdown_blog_loader/__init__.py +0 -0
  9. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/src/wordpress_markdown_blog_loader/__main__.py +0 -0
  10. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/src/wordpress_markdown_blog_loader/blog.py +0 -0
  11. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/src/wordpress_markdown_blog_loader/check_links.py +0 -0
  12. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/src/wordpress_markdown_blog_loader/download.py +0 -0
  13. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/src/wordpress_markdown_blog_loader/name_to_email.py +0 -0
  14. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/src/wordpress_markdown_blog_loader/new.py +0 -0
  15. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/src/wordpress_markdown_blog_loader/remove_newlines.py +0 -0
  16. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/src/wordpress_markdown_blog_loader/upload.py +0 -0
  17. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/src/wordpress_markdown_blog_loader.egg-info/SOURCES.txt +0 -0
  18. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/src/wordpress_markdown_blog_loader.egg-info/dependency_links.txt +0 -0
  19. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/src/wordpress_markdown_blog_loader.egg-info/entry_points.txt +0 -0
  20. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/src/wordpress_markdown_blog_loader.egg-info/not-zip-safe +0 -0
  21. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/src/wordpress_markdown_blog_loader.egg-info/requires.txt +0 -0
  22. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/src/wordpress_markdown_blog_loader.egg-info/top_level.txt +0 -0
  23. {wordpress_markdown_blog_loader-1.5.0 → wordpress_markdown_blog_loader-1.5.2}/tests/test_blog.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: wordpress-markdown-blog-loader
3
- Version: 1.5.0
3
+ Version: 1.5.2
4
4
  Summary: load markdown blogs into wordpress
5
5
  Home-page: https://github.com/binxio/wordpress-markdown-blog-loader
6
6
  Author: Mark van Holsteijn
@@ -113,7 +113,7 @@ alias wp-md='docker run \
113
113
  -v $HOME:$HOME \
114
114
  -v $HOME/.wordpress.ini:/root/.wordpress.ini \
115
115
  -v $PWD:/$PWD \
116
- -w $PWD ghcr.io/binxio/wordpress-markdown-blog-loader:1.5.0
116
+ -w $PWD ghcr.io/binxio/wordpress-markdown-blog-loader:1.5.2
117
117
  ```'
118
118
  Assuming that your WordPress app password is stored in the 1password Private vault under the name `wordpress app password`
119
119
 
@@ -67,7 +67,7 @@ alias wp-md='docker run \
67
67
  -v $HOME:$HOME \
68
68
  -v $HOME/.wordpress.ini:/root/.wordpress.ini \
69
69
  -v $PWD:/$PWD \
70
- -w $PWD ghcr.io/binxio/wordpress-markdown-blog-loader:1.5.0
70
+ -w $PWD ghcr.io/binxio/wordpress-markdown-blog-loader:1.5.2
71
71
  ```'
72
72
  Assuming that your WordPress app password is stored in the 1password Private vault under the name `wordpress app password`
73
73
 
@@ -27,7 +27,7 @@ with open(path.join(this_directory, "README.md"), encoding="utf-8") as f:
27
27
 
28
28
  setup(
29
29
  name="wordpress-markdown-blog-loader",
30
- version="1.5.0",
30
+ version="1.5.2",
31
31
  url="https://github.com/binxio/wordpress-markdown-blog-loader",
32
32
  license="APL2",
33
33
  author="Mark van Holsteijn",
@@ -25,6 +25,7 @@ def get_default_host() -> Optional[str]:
25
25
  config.read(expanduser("~/.wordpress.ini"))
26
26
  return config.defaults().get("host")
27
27
 
28
+
28
29
  def get_password(host: str) -> Optional[str]:
29
30
  """
30
31
  Returns a password from the environment variable for the specified host.
@@ -65,7 +66,6 @@ class WordpressEndpoint:
65
66
  config = configparser.ConfigParser()
66
67
  config.read(expanduser("~/.wordpress.ini"))
67
68
 
68
-
69
69
  if not host:
70
70
  host = config.defaults().get("host")
71
71
  assert host, "no host specified and no default host found"
@@ -77,7 +77,9 @@ class WordpressEndpoint:
77
77
  self.username = config.get(host, "username")
78
78
  self.password = get_password(host)
79
79
  if not self.password:
80
- logging.warning("taking plain text app password from configuration file, use WP_APP_PASSWORD environment variable instead!")
80
+ logging.warning(
81
+ "taking plain text app password from configuration file, use WP_APP_PASSWORD environment variable instead!"
82
+ )
81
83
  self.password = config.get(host, "password")
82
84
 
83
85
  def is_host_for(self, url: Union[str, ParseResult]) -> bool:
@@ -267,6 +269,7 @@ class PermissionDenied(Exception):
267
269
  def __init__(self, msg):
268
270
  super().__init__(msg)
269
271
 
272
+
270
273
  class Wordpress(object):
271
274
  def __init__(self, host: Optional[str] = None):
272
275
  self.endpoint = WordpressEndpoint.load(host)
@@ -312,7 +315,7 @@ class Wordpress(object):
312
315
  page = page + 1
313
316
  else:
314
317
  msg = f"failed to get all {resource}: {response.status_code}, {response.text}"
315
- if response.status_code in [401,403]:
318
+ if response.status_code in [401, 403]:
316
319
  raise PermissionDenied(msg)
317
320
  else:
318
321
  print(msg)
@@ -326,13 +329,14 @@ class Wordpress(object):
326
329
  def get_user_by_id(self, resource_id: int) -> "User":
327
330
  return User(self.get("users", resource_id))
328
331
 
329
- def get_unique_user_by_name(self, name: str, email: Optional[str], author_id: Optional[str]) -> "User":
332
+ def get_unique_user_by_name(
333
+ self, name: str, email: Optional[str], author_id: Optional[str]
334
+ ) -> "User":
330
335
 
331
336
  user = self.get_user_by_id("me")
332
337
  if user and user.name == name:
333
338
  return user
334
339
 
335
-
336
340
  users = []
337
341
  try:
338
342
  # The email field is only returned when the context edit is passed.
@@ -347,17 +351,34 @@ class Wordpress(object):
347
351
  elif len(users) == 1:
348
352
  return users[0]
349
353
 
350
- user = next(filter(lambda u: (author_id and u.slug == author_id) or (not author_id and email and u.email and u.email.lower() == email.lower()), users), None)
351
- if not user:
352
- if author_id:
353
- raise ValueError(
354
- f"Multiple authors named '{name}' found, none with author id {author_id} (possible: { {u.slug for u in users} })."
355
- )
356
- else:
357
- raise ValueError(
358
- f"Multiple authors named '{name}' found, but none with email {email} (possible: { {u.email for u in users} })."
359
- )
360
- return user
354
+ if user := next(
355
+ filter(
356
+ lambda u: (author_id and u.slug == author_id)
357
+ or (
358
+ not author_id
359
+ and email
360
+ and u.email
361
+ and u.email.lower() == email.lower()
362
+ ),
363
+ users,
364
+ ),
365
+ None,
366
+ ):
367
+ return user
368
+
369
+ candidates = ", ".join(["{} / {}".format(u.slug, u.email) for u in users])
370
+ if author_id:
371
+ raise ValueError(
372
+ f"Multiple authors named '{name}' found, none with author id {author_id} (possible: {candidates})."
373
+ )
374
+ elif email:
375
+ raise ValueError(
376
+ f"Multiple authors named '{name}' found, but none with email {email}. (possible: {candidates})."
377
+ )
378
+ else:
379
+ raise ValueError(
380
+ f"Multiple authors named '{name}' found. (possible: {candidates})."
381
+ )
361
382
 
362
383
  def posts(self, query: dict = None) -> Iterator["Post"]:
363
384
  for p in self.get_all("posts", query):
@@ -388,10 +409,11 @@ class Wordpress(object):
388
409
  @cache
389
410
  def categories(self) -> Dict[str, int]:
390
411
  return {c["slug"]: c["id"] for c in self.get_all("categories")}
412
+
391
413
  @property
392
414
  @cache
393
415
  def categories_by_id(self) -> Dict[int, str]:
394
- return {id: slug for slug,id in self.categories.items()}
416
+ return {id: slug for slug, id in self.categories.items()}
395
417
 
396
418
  @property
397
419
  @cache
@@ -403,7 +425,6 @@ class Wordpress(object):
403
425
  def tags_by_id(self) -> Dict[int, str]:
404
426
  return {id: slug for slug, id in self.tags.items()}
405
427
 
406
-
407
428
  def search_for_image_by_slug(self, slug) -> Optional[Medium]:
408
429
  response = self.session.get(
409
430
  f"{self.url}/media",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: wordpress-markdown-blog-loader
3
- Version: 1.5.0
3
+ Version: 1.5.2
4
4
  Summary: load markdown blogs into wordpress
5
5
  Home-page: https://github.com/binxio/wordpress-markdown-blog-loader
6
6
  Author: Mark van Holsteijn
@@ -113,7 +113,7 @@ alias wp-md='docker run \
113
113
  -v $HOME:$HOME \
114
114
  -v $HOME/.wordpress.ini:/root/.wordpress.ini \
115
115
  -v $PWD:/$PWD \
116
- -w $PWD ghcr.io/binxio/wordpress-markdown-blog-loader:1.5.0
116
+ -w $PWD ghcr.io/binxio/wordpress-markdown-blog-loader:1.5.2
117
117
  ```'
118
118
  Assuming that your WordPress app password is stored in the 1password Private vault under the name `wordpress app password`
119
119