summaryrefslogtreecommitdiff
path: root/continuedev
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-08-08 15:30:21 -0700
committerNate Sesti <sestinj@gmail.com>2023-08-08 15:30:21 -0700
commitd2b1aedcedf950d792baee202efdab199b05e57e (patch)
tree826d68c9ba3663a2d8aba29f128ab67213706fc2 /continuedev
parentfb7d5d9aadcdb40c3733ac29e349df0cf6f69046 (diff)
downloadsncontinue-d2b1aedcedf950d792baee202efdab199b05e57e.tar.gz
sncontinue-d2b1aedcedf950d792baee202efdab199b05e57e.tar.bz2
sncontinue-d2b1aedcedf950d792baee202efdab199b05e57e.zip
feat: :sparkles: set static urls for contextprovider
Diffstat (limited to 'continuedev')
-rw-r--r--continuedev/src/continuedev/plugins/context_providers/url.py34
1 files changed, 29 insertions, 5 deletions
diff --git a/continuedev/src/continuedev/plugins/context_providers/url.py b/continuedev/src/continuedev/plugins/context_providers/url.py
index 9274d84a..32c1d69c 100644
--- a/continuedev/src/continuedev/plugins/context_providers/url.py
+++ b/continuedev/src/continuedev/plugins/context_providers/url.py
@@ -1,4 +1,4 @@
-from typing import List
+from typing import List, Optional
from .util import remove_meilisearch_disallowed_chars
from ...core.main import ContextItem, ContextItemDescription, ContextItemId
@@ -8,9 +8,25 @@ from ...core.context import ContextProvider
class URLContextProvider(ContextProvider):
title = "url"
+ url: Optional[str] = None
+ display_name: Optional[str] = None
URL_CONTEXT_ITEM_ID = "url"
@property
+ def optional_url_item_id(self) -> str:
+ return remove_meilisearch_disallowed_chars(self.url)
+
+ @property
+ def optional_url_item(self) -> ContextItem:
+ cp = self.BASE_CONTEXT_ITEM.copy()
+ if self.display_name:
+ cp.description.name = self.display_name
+ cp.description.description = f"Contents of {self.url}"
+ cp.description.id.item_id = self.optional_url_item_id
+
+ return cp
+
+ @property
def BASE_CONTEXT_ITEM(self):
return ContextItem(
content="",
@@ -33,14 +49,22 @@ class URLContextProvider(ContextProvider):
return soup.get_text()
async def provide_context_items(self, workspace_dir: str) -> List[ContextItem]:
- return [self.BASE_CONTEXT_ITEM]
+ items = [self.BASE_CONTEXT_ITEM]
+ if self.url:
+ items.append(self.optional_url_item)
+
+ return items
async def get_item(self, id: ContextItemId, query: str) -> ContextItem:
+ if id.item_id == self.optional_url_item_id:
+ item = self.optional_url_item
+ item.content = self._get_url_text_contents(self.url)
+ return item
+
if not id.item_id == self.URL_CONTEXT_ITEM_ID:
raise Exception("Invalid item id")
- query = query.lstrip("url ")
- url = query.strip()
+ url = query.lstrip("url ").strip()
content = self._get_url_text_contents(url)
ctx_item = self.BASE_CONTEXT_ITEM.copy()
@@ -48,5 +72,5 @@ class URLContextProvider(ContextProvider):
ctx_item.description.name = url.replace(
"https://", "").replace("http://", "")
ctx_item.description.id.item_id = remove_meilisearch_disallowed_chars(
- query)
+ url)
return ctx_item