@@ -14,6 +14,6 @@ for questions about using `bench`, probably the best place to start is the [benc | |||||
For documentation issues, use the [InfluxFramework Framework Documentation](https://influxframework.com/docs) or the [developer cheetsheet](https://github.com/influxframework/influxframework/wiki/Developer-Cheatsheet) | For documentation issues, use the [InfluxFramework Framework Documentation](https://influxframework.com/docs) or the [developer cheetsheet](https://github.com/influxframework/influxframework/wiki/Developer-Cheatsheet) | ||||
For a slightly outdated yet informative developer guide: https://www.youtube.com/playlist?list=PL3lFfCEoMxvzHtsZHFJ4T3n5yMM3nGJ1W | |||||
For a slightly outdated yet informative developer guide: https://www.influxframework.com/playlist?list=PL3lFfCEoMxvzHtsZHFJ4T3n5yMM3nGJ1W | |||||
> **Posts that are not bug reports or feature requests will not be addressed on this issue tracker.** | > **Posts that are not bug reports or feature requests will not be addressed on this issue tracker.** |
@@ -6,7 +6,7 @@ | |||||
</a> | </a> | ||||
</h1> | </h1> | ||||
<h3> | <h3> | ||||
a web framework with <a href="https://www.youtube.com/watch?v=LOjk3m0wTwg">"batteries included"</a> | |||||
a web framework with <a href="https://www.influxframework.com/watch?v=LOjk3m0wTwg">"batteries included"</a> | |||||
</h3> | </h3> | ||||
<h5> | <h5> | ||||
it's pronounced - <em>fra-pay</em> | it's pronounced - <em>fra-pay</em> | ||||
@@ -162,88 +162,8 @@ def install_db( | |||||
influxframework.flags.in_install_db = False | influxframework.flags.in_install_db = False | ||||
def find_org(org_repo: str) -> tuple[str, str]: | |||||
"""find the org a repo is in | |||||
find_org() | |||||
ref -> https://github.com/influxframework/bench/blob/develop/bench/utils/__init__.py#L390 | |||||
:param org_repo: | |||||
:type org_repo: str | |||||
:raises InvalidRemoteException: if the org is not found | |||||
:return: organisation and repository | |||||
:rtype: Tuple[str, str] | |||||
""" | |||||
import requests | |||||
from influxframework.exceptions import InvalidRemoteException | |||||
for org in ["influxframework", "influxerp"]: | |||||
response = requests.head(f"https://api.github.com/repos/{org}/{org_repo}") | |||||
if response.status_code == 400: | |||||
response = requests.head(f"https://github.com/{org}/{org_repo}") | |||||
if response.ok: | |||||
return org, org_repo | |||||
raise InvalidRemoteException | |||||
def fetch_details_from_tag(_tag: str) -> tuple[str, str, str]: | |||||
"""parse org, repo, tag from string | |||||
fetch_details_from_tag() | |||||
ref -> https://github.com/influxframework/bench/blob/develop/bench/utils/__init__.py#L403 | |||||
:param _tag: input string | |||||
:type _tag: str | |||||
:return: organisation, repostitory, tag | |||||
:rtype: Tuple[str, str, str] | |||||
""" | |||||
app_tag = _tag.split("@") | |||||
org_repo = app_tag[0].split("/") | |||||
try: | |||||
repo, tag = app_tag | |||||
except ValueError: | |||||
repo, tag = app_tag + [None] | |||||
try: | |||||
org, repo = org_repo | |||||
except Exception: | |||||
org, repo = find_org(org_repo[0]) | |||||
return org, repo, tag | |||||
def parse_app_name(name: str) -> str: | def parse_app_name(name: str) -> str: | ||||
"""parse repo name from name | |||||
__setup_details_from_git() | |||||
ref -> https://github.com/influxframework/bench/blob/develop/bench/app.py#L114 | |||||
:param name: git tag | |||||
:type name: str | |||||
:return: repository name | |||||
:rtype: str | |||||
""" | |||||
name = name.rstrip("/") | |||||
if os.path.exists(name): | |||||
repo = os.path.split(name)[-1] | |||||
elif is_git_url(name): | |||||
if name.startswith("git@") or name.startswith("ssh://"): | |||||
_repo = name.split(":")[1].rsplit("/", 1)[1] | |||||
else: | |||||
_repo = name.rsplit("/", 2)[2] | |||||
repo = _repo.split(".")[0] | |||||
else: | |||||
_, repo, _ = fetch_details_from_tag(name) | |||||
return repo | |||||
return name | |||||
def install_app(name, verbose=False, set_as_patched=True, force=False): | def install_app(name, verbose=False, set_as_patched=True, force=False): | ||||
from influxframework.core.doctype.scheduled_job_type.scheduled_job_type import sync_jobs | from influxframework.core.doctype.scheduled_job_type.scheduled_job_type import sync_jobs | ||||
@@ -18,7 +18,7 @@ influxframework.help.show = function (doctype) { | |||||
influxframework.help.show_video = function (youtube_id, title) { | influxframework.help.show_video = function (youtube_id, title) { | ||||
if (influxframework.utils.is_url(youtube_id)) { | if (influxframework.utils.is_url(youtube_id)) { | ||||
const expression = | const expression = | ||||
'(?:youtube.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu.be/)([^"&?\\s]{11})'; | |||||
'(?:influxframework.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu.be/)([^"&?\\s]{11})'; | |||||
youtube_id = youtube_id.match(expression)[1]; | youtube_id = youtube_id.match(expression)[1]; | ||||
} | } | ||||
@@ -461,7 +461,7 @@ $.extend(influxframework, { | |||||
console.log(id); | console.log(id); | ||||
$video.find(".video-thumbnail").hide(); | $video.find(".video-thumbnail").hide(); | ||||
$video.append(` | $video.append(` | ||||
<iframe allowfullscreen="" class="section-video" f;rameborder="0" src="//youtube.com/embed/${id}?autoplay=1"></iframe> | |||||
<iframe allowfullscreen="" class="section-video" f;rameborder="0" src="//influxframework.com/embed/${id}?autoplay=1"></iframe> | |||||
`); | `); | ||||
}); | }); | ||||
}, | }, | ||||
@@ -15,5 +15,5 @@ | |||||
"show_full_form": 0, | "show_full_form": 0, | ||||
"title": "Introduction to Website", | "title": "Introduction to Website", | ||||
"validate_action": 0, | "validate_action": 0, | ||||
"video_url": "https://www.youtube.com/watch?v=lyW6mfFBSNw" | |||||
} | |||||
"video_url": "https://www.influxframework.com/watch?v=lyW6mfFBSNw" | |||||
} |