Skip to content

Commit

Permalink
feat(server): add tag to imported document
Browse files Browse the repository at this point in the history
  • Loading branch information
kiike committed Mar 13, 2024
1 parent e9ff2ee commit 76e4699
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 3 deletions.
8 changes: 5 additions & 3 deletions papis_zotero/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from functools import partial
import os
import http.server
from typing import Optional
Expand All @@ -24,17 +25,18 @@ def main() -> None:
default=papis_zotero.server.ZOTERO_PORT,
type=int)
@click.option("--address", help="Address to bind", default="localhost")
def serve(address: str, port: int) -> None:
@click.option("-t", "--add-tag", help="Tag that is added to the document", default=None)
def serve(address: str, port: int, add_tag: Optional[str]) -> None:
"""Start a ``zotero-connector`` server."""

logger.warning("The 'zotero-connector' server is experimental. "
"Please report bugs and improvements at "
"https://github.com/papis/papis-zotero/issues.")

server_address = (address, port)
request_handler = partial(papis_zotero.server.PapisRequestHandler, add_tag)
try:
httpd = http.server.HTTPServer(server_address,
papis_zotero.server.PapisRequestHandler)
httpd = http.server.HTTPServer(server_address, request_handler)
except OSError:
logger.error(
"Address '%s:%s' is already in use. This may be because you "
Expand Down
10 changes: 10 additions & 0 deletions papis_zotero/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,11 @@ def download_zotero_attachments(attachments: List[Dict[str, str]]) -> List[str]:


class PapisRequestHandler(http.server.BaseHTTPRequestHandler):
def __init__(self, add_tag: str, request: Any,
client_address: Any, server: Any) -> None:
self.add_tag: str = add_tag
super().__init__(request, client_address, server)

def log_message(self, fmt: str, *args: Any) -> None:
logger.info(fmt, *args)

Expand Down Expand Up @@ -209,6 +214,11 @@ def handle_post_add(self) -> None:
files = []

papis_item = zotero_data_to_papis_data(item)
if papis_item.get("tags"):
papis_item["tags"].append(self.add_tag)
else:
papis_item["tags"] = [self.add_tag]

logger.info("Adding paper to papis.")
papis.commands.add.run(files, data=papis_item)

Expand Down

0 comments on commit 76e4699

Please sign in to comment.