Add timeout settings to all requests in Obsidian Local REST API

This commit is contained in:
7shi
2024-12-01 22:36:06 +09:00
parent 970a9b061e
commit 6d671ea0ff

View File

@@ -16,6 +16,7 @@ class Obsidian():
self.host = host self.host = host
self.port = port self.port = port
self.verify_ssl = verify_ssl self.verify_ssl = verify_ssl
self.timeout = (5, 15)
def get_base_url(self) -> str: def get_base_url(self) -> str:
return f'{self.protocol}://{self.host}:{self.port}' return f'{self.protocol}://{self.host}:{self.port}'
@@ -41,7 +42,7 @@ class Obsidian():
url = f"{self.get_base_url()}/vault/" url = f"{self.get_base_url()}/vault/"
def call_fn(): def call_fn():
response = requests.get(url, headers=self._get_headers(), verify=self.verify_ssl) response = requests.get(url, headers=self._get_headers(), verify=self.verify_ssl, timeout=self.timeout)
response.raise_for_status() response.raise_for_status()
return response.json()['files'] return response.json()['files']
@@ -53,7 +54,7 @@ class Obsidian():
url = f"{self.get_base_url()}/vault/{dirpath}/" url = f"{self.get_base_url()}/vault/{dirpath}/"
def call_fn(): def call_fn():
response = requests.get(url, headers=self._get_headers(), verify=self.verify_ssl) response = requests.get(url, headers=self._get_headers(), verify=self.verify_ssl, timeout=self.timeout)
response.raise_for_status() response.raise_for_status()
return response.json()['files'] return response.json()['files']
@@ -64,7 +65,7 @@ class Obsidian():
url = f"{self.get_base_url()}/vault/{filepath}" url = f"{self.get_base_url()}/vault/{filepath}"
def call_fn(): def call_fn():
response = requests.get(url, headers=self._get_headers(), verify=self.verify_ssl) response = requests.get(url, headers=self._get_headers(), verify=self.verify_ssl, timeout=self.timeout)
response.raise_for_status() response.raise_for_status()
return response.text return response.text
@@ -79,7 +80,7 @@ class Obsidian():
} }
def call_fn(): def call_fn():
response = requests.post(url, headers=self._get_headers(), params=params, verify=self.verify_ssl) response = requests.post(url, headers=self._get_headers(), params=params, verify=self.verify_ssl, timeout=self.timeout)
response.raise_for_status() response.raise_for_status()
return response.json() return response.json()
@@ -93,7 +94,8 @@ class Obsidian():
url, url,
headers=self._get_headers() | {'Content-Type': 'text/markdown'}, headers=self._get_headers() | {'Content-Type': 'text/markdown'},
data=content, data=content,
verify=self.verify_ssl verify=self.verify_ssl,
timeout=self.timeout
) )
response.raise_for_status() response.raise_for_status()
return None return None
@@ -111,7 +113,7 @@ class Obsidian():
} }
def call_fn(): def call_fn():
response = requests.patch(url, headers=headers, data=content, verify=self.verify_ssl) response = requests.patch(url, headers=headers, data=content, verify=self.verify_ssl, timeout=self.timeout)
response.raise_for_status() response.raise_for_status()
return None return None
@@ -125,7 +127,7 @@ class Obsidian():
} }
def call_fn(): def call_fn():
response = requests.post(url, headers=headers, json=query, verify=self.verify_ssl) response = requests.post(url, headers=headers, json=query, verify=self.verify_ssl, timeout=self.timeout)
response.raise_for_status() response.raise_for_status()
return response.json() return response.json()