forked from Github/Axter-Stash
Added issue templates
This commit is contained in:
58
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
58
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
name: 🐞 Bug
|
||||||
|
description: Create a bug report
|
||||||
|
title: "🐞[Bug] Your_Short_title"
|
||||||
|
labels: [Bug]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thank you for taking the time to fill out this bug report!
|
||||||
|
Fields marked with an asterisk (*) are required, and remaining fields are optional, but we encourage their usage.
|
||||||
|
- type: textarea
|
||||||
|
id: feature
|
||||||
|
attributes:
|
||||||
|
label: Please enter a clear and concise description of the bug.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: os
|
||||||
|
attributes:
|
||||||
|
label: What Operating System (OS)?
|
||||||
|
placeholder: e.g. Windows, MacOS, Linux
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: browser
|
||||||
|
attributes:
|
||||||
|
label: What browser and version?
|
||||||
|
placeholder: e.g. Chrome Ver:127, Firefox Ver:129, Safari Ver:1.3.2, Any
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: steps-to-reproduce
|
||||||
|
attributes:
|
||||||
|
label: Steps To Reproduce
|
||||||
|
description: What are the steps used to reproduce this issue?
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: textarea
|
||||||
|
id: expected-behavior
|
||||||
|
attributes:
|
||||||
|
label: Expected Behavior
|
||||||
|
description: What was the expected behavior?
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: textarea
|
||||||
|
id: logging
|
||||||
|
attributes:
|
||||||
|
label: Logging
|
||||||
|
description: Enter Stash logging.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: textarea
|
||||||
|
id: snapshots
|
||||||
|
attributes:
|
||||||
|
label: Snapshot(s)
|
||||||
|
description: Optionally attach snapshot(s) which displays the bug.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
65
.github/ISSUE_TEMPLATE/bug_report_plugin.yml
vendored
Normal file
65
.github/ISSUE_TEMPLATE/bug_report_plugin.yml
vendored
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
name: 🪲 Plugin Bug
|
||||||
|
description: Create a plugin bug report
|
||||||
|
title: "🪲[EnterPluginNameHere] Your_Short_title"
|
||||||
|
labels: [Plugin_Bug]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thank you for taking the time to fill out this bug report!
|
||||||
|
Fields marked with an asterisk (*) are required, and remaining fields are optional, but we encourage their usage.
|
||||||
|
- type: textarea
|
||||||
|
id: feature
|
||||||
|
attributes:
|
||||||
|
label: Please enter a clear and concise description of the bug.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: os
|
||||||
|
attributes:
|
||||||
|
label: What Operating System (OS)?
|
||||||
|
placeholder: e.g. Windows, MacOS, Linux
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: browser
|
||||||
|
attributes:
|
||||||
|
label: What browser and version?
|
||||||
|
placeholder: e.g. Chrome Ver:127, Firefox Ver:129, Safari Ver:1.3.2, Any
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: install
|
||||||
|
attributes:
|
||||||
|
label: The pip install for the plugin
|
||||||
|
description: pip install stashapp-tools --upgrade, pip install pyYAML
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: steps-to-reproduce
|
||||||
|
attributes:
|
||||||
|
label: Steps To Reproduce
|
||||||
|
description: What are the steps used to reproduce this issue?
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: textarea
|
||||||
|
id: expected-behavior
|
||||||
|
attributes:
|
||||||
|
label: Expected Behavior
|
||||||
|
description: What was the expected behavior?
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: textarea
|
||||||
|
id: logging
|
||||||
|
attributes:
|
||||||
|
label: Logging
|
||||||
|
description: Enter Stash logging and plugin logging file if applicable.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: textarea
|
||||||
|
id: snapshots
|
||||||
|
attributes:
|
||||||
|
label: Snapshot(s)
|
||||||
|
description: Optionally attach snapshot(s) which displays the bug.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
42
.github/ISSUE_TEMPLATE/discussion.yml
vendored
Normal file
42
.github/ISSUE_TEMPLATE/discussion.yml
vendored
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
name: 🛗Discussion / Request for Commentary [RFC]
|
||||||
|
description: This is for issues that will be discussed and won't necessarily result directly in commits or pull requests.
|
||||||
|
title: "🛗[RFC]: Your_Short_title"
|
||||||
|
labels: [RFC]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
This is for issues that will be discussed and won't necessarily result directly in commits or pull requests.
|
||||||
|
Please ensure that you respect people's time and attention and understand that people are volunteering their time, so concision is ideal and considerate.
|
||||||
|
Fields marked with an asterisk (*) are required, and remaining fields are optional, but we encourage their usage.
|
||||||
|
- type: textarea
|
||||||
|
id: Title
|
||||||
|
attributes:
|
||||||
|
label: Optional title of the topic to discuss.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: textarea
|
||||||
|
id: Summary
|
||||||
|
attributes:
|
||||||
|
label: Describe the scope of your topic and your goals ideally within a single paragraph or TL. A summary that makes it easier for people to determine if they can contribute at a glance.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: Details
|
||||||
|
attributes:
|
||||||
|
label: Only required if summary and title doesn't cover everything.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: textarea
|
||||||
|
id: Examples
|
||||||
|
attributes:
|
||||||
|
label: If you can show a picture or video examples post them here.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: textarea
|
||||||
|
id: snapshots
|
||||||
|
attributes:
|
||||||
|
label: Snapshot(s)
|
||||||
|
description: Optionally attach additional snapshot(s) which helps describe the discussion.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
35
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
35
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
name: 💡️Feature Request
|
||||||
|
description: Suggest improvement for this project
|
||||||
|
title: "💡️[Enhancement]: Your_Short_title"
|
||||||
|
labels: [Enhancement]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Please fill out the following fields with as much detail as possible:
|
||||||
|
Fields marked with an asterisk (*) are required, and remaining fields are optional, but we encourage their usage.
|
||||||
|
- type: textarea
|
||||||
|
id: problem
|
||||||
|
attributes:
|
||||||
|
label: If feature request is related to a problem, give a clear and concise description of what is the problem. Ex. I'm always frustrated when [...]
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: textarea
|
||||||
|
id: solution
|
||||||
|
attributes:
|
||||||
|
label: Describe the solution you'd like. A clear and concise description of what you want to happen.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: alternatives
|
||||||
|
attributes:
|
||||||
|
label: Describe alternatives you've considered. A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: textarea
|
||||||
|
id: Snapshots
|
||||||
|
attributes:
|
||||||
|
label: Snapshots / Images
|
||||||
|
description: Add any other context or screenshots about the feature request here, which can help explain the feature, and a description of what to look for in the image(s).
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
37
.github/ISSUE_TEMPLATE/help.yml
vendored
Normal file
37
.github/ISSUE_TEMPLATE/help.yml
vendored
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
name: ❓Help
|
||||||
|
description: Post your question
|
||||||
|
title: "❓[Help]: Your_Short_title"
|
||||||
|
labels: [Question]
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Please fill out the following fields with as much detail as possible, so that we can better answer your question.
|
||||||
|
Fields marked with an asterisk (*) are required, and remaining fields are optional, but we encourage their usage.
|
||||||
|
- type: textarea
|
||||||
|
id: question
|
||||||
|
attributes:
|
||||||
|
label: Please enter a clear and concise detailed question.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: os
|
||||||
|
attributes:
|
||||||
|
label: What Operating System (OS)?
|
||||||
|
placeholder: e.g. Windows, MacOS, Linux
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: input
|
||||||
|
id: browser
|
||||||
|
attributes:
|
||||||
|
label: What browser and version?
|
||||||
|
placeholder: e.g. Chrome Ver:127, Firefox Ver:129, Safari Ver:1.3.2, Any
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
|
- type: textarea
|
||||||
|
id: snapshots
|
||||||
|
attributes:
|
||||||
|
label: Snapshot(s)
|
||||||
|
description: Optionally attach snapshot(s) which helps describe the question.
|
||||||
|
validations:
|
||||||
|
required: false
|
||||||
@@ -61,6 +61,7 @@ class StashPluginHelper:
|
|||||||
STDIN_READ = None
|
STDIN_READ = None
|
||||||
FRAGMENT_SERVER = None
|
FRAGMENT_SERVER = None
|
||||||
logger = None
|
logger = None
|
||||||
|
traceOncePreviousHits = []
|
||||||
|
|
||||||
# Prefix message value
|
# Prefix message value
|
||||||
LEV_TRACE = "TRACE: "
|
LEV_TRACE = "TRACE: "
|
||||||
@@ -223,6 +224,20 @@ class StashPluginHelper:
|
|||||||
logMsg = f"Line number {lineNo}..."
|
logMsg = f"Line number {lineNo}..."
|
||||||
self.Log(logMsg, printTo, logLev, lineNo, self.LEV_TRACE, logAlways)
|
self.Log(logMsg, printTo, logLev, lineNo, self.LEV_TRACE, logAlways)
|
||||||
|
|
||||||
|
# Log once per session. Only logs the first time called from a particular line number in the code.
|
||||||
|
def TraceOnce(self, logMsg = "", printTo = 0, logAlways = False):
|
||||||
|
if printTo == 0: printTo = self.LOG_TO_FILE
|
||||||
|
lineNo = inspect.currentframe().f_back.f_lineno
|
||||||
|
logLev = logging.INFO if logAlways else logging.DEBUG
|
||||||
|
if self.DEBUG_TRACING or logAlways:
|
||||||
|
FuncAndLineNo = f"{inspect.currentframe().f_back.f_code.co_name}:{lineNo}"
|
||||||
|
if FuncAndLineNo in traceOncePreviousHits:
|
||||||
|
return
|
||||||
|
traceOncePreviousHits.append(FuncAndLineNo)
|
||||||
|
if logMsg == "":
|
||||||
|
logMsg = f"Line number {lineNo}..."
|
||||||
|
self.Log(logMsg, printTo, logLev, lineNo, self.LEV_TRACE, logAlways)
|
||||||
|
|
||||||
def Warn(self, logMsg, printTo = 0):
|
def Warn(self, logMsg, printTo = 0):
|
||||||
if printTo == 0: printTo = self.log_to_wrn_set
|
if printTo == 0: printTo = self.log_to_wrn_set
|
||||||
lineNo = inspect.currentframe().f_back.f_lineno
|
lineNo = inspect.currentframe().f_back.f_lineno
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ class StashPluginHelper:
|
|||||||
STDIN_READ = None
|
STDIN_READ = None
|
||||||
FRAGMENT_SERVER = None
|
FRAGMENT_SERVER = None
|
||||||
logger = None
|
logger = None
|
||||||
|
traceOncePreviousHits = []
|
||||||
|
|
||||||
# Prefix message value
|
# Prefix message value
|
||||||
LEV_TRACE = "TRACE: "
|
LEV_TRACE = "TRACE: "
|
||||||
@@ -223,6 +224,20 @@ class StashPluginHelper:
|
|||||||
logMsg = f"Line number {lineNo}..."
|
logMsg = f"Line number {lineNo}..."
|
||||||
self.Log(logMsg, printTo, logLev, lineNo, self.LEV_TRACE, logAlways)
|
self.Log(logMsg, printTo, logLev, lineNo, self.LEV_TRACE, logAlways)
|
||||||
|
|
||||||
|
# Log once per session. Only logs the first time called from a particular line number in the code.
|
||||||
|
def TraceOnce(self, logMsg = "", printTo = 0, logAlways = False):
|
||||||
|
if printTo == 0: printTo = self.LOG_TO_FILE
|
||||||
|
lineNo = inspect.currentframe().f_back.f_lineno
|
||||||
|
logLev = logging.INFO if logAlways else logging.DEBUG
|
||||||
|
if self.DEBUG_TRACING or logAlways:
|
||||||
|
FuncAndLineNo = f"{inspect.currentframe().f_back.f_code.co_name}:{lineNo}"
|
||||||
|
if FuncAndLineNo in traceOncePreviousHits:
|
||||||
|
return
|
||||||
|
traceOncePreviousHits.append(FuncAndLineNo)
|
||||||
|
if logMsg == "":
|
||||||
|
logMsg = f"Line number {lineNo}..."
|
||||||
|
self.Log(logMsg, printTo, logLev, lineNo, self.LEV_TRACE, logAlways)
|
||||||
|
|
||||||
def Warn(self, logMsg, printTo = 0):
|
def Warn(self, logMsg, printTo = 0):
|
||||||
if printTo == 0: printTo = self.log_to_wrn_set
|
if printTo == 0: printTo = self.log_to_wrn_set
|
||||||
lineNo = inspect.currentframe().f_back.f_lineno
|
lineNo = inspect.currentframe().f_back.f_lineno
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ if plugin.CALLED_AS_STASH_PLUGIN:
|
|||||||
plugin.Trace(f"isJobWaitingToRun() = {isJobWaitingToRun()})")
|
plugin.Trace(f"isJobWaitingToRun() = {isJobWaitingToRun()})")
|
||||||
|
|
||||||
# Reoccurring scheduler code
|
# Reoccurring scheduler code
|
||||||
|
# ToDo: Change the following functions into a class called reoccurringScheduler
|
||||||
def runTask(task):
|
def runTask(task):
|
||||||
import datetime
|
import datetime
|
||||||
plugin.Trace(f"Running task {task}")
|
plugin.Trace(f"Running task {task}")
|
||||||
@@ -145,6 +146,9 @@ def reoccurringScheduler():
|
|||||||
plugin.Log(f"Adding to reoccurring scheduler task '{task['task']}' at {task['days']} days interval")
|
plugin.Log(f"Adding to reoccurring scheduler task '{task['task']}' at {task['days']} days interval")
|
||||||
schedule.every(task['days']).days.do(runTask, task)
|
schedule.every(task['days']).days.do(runTask, task)
|
||||||
elif 'weekday' in task and task['weekday'].lower() in dayOfTheWeek and 'time' in task:
|
elif 'weekday' in task and task['weekday'].lower() in dayOfTheWeek and 'time' in task:
|
||||||
|
if 'monthly' in task:
|
||||||
|
plugin.Log(f"Adding to reoccurring scheduler task '{task['task']}' monthly on number {task['monthly']} {task['weekday']} at {task['time']}")
|
||||||
|
else:
|
||||||
plugin.Log(f"Adding to reoccurring scheduler task '{task['task']}' (weekly) every {task['weekday']} at {task['time']}")
|
plugin.Log(f"Adding to reoccurring scheduler task '{task['task']}' (weekly) every {task['weekday']} at {task['time']}")
|
||||||
if task['weekday'].lower() == "monday":
|
if task['weekday'].lower() == "monday":
|
||||||
schedule.every().monday.at(task['time']).do(runTask, task)
|
schedule.every().monday.at(task['time']).do(runTask, task)
|
||||||
@@ -213,7 +217,7 @@ def start_library_monitor():
|
|||||||
shouldUpdate = True
|
shouldUpdate = True
|
||||||
signal.notify()
|
signal.notify()
|
||||||
else:
|
else:
|
||||||
plugin.Trace(f"Ignoring modifications due to plugin UI setting. path='{event.src_path}'")
|
plugin.TraceOnce(f"Ignoring modifications due to plugin UI setting. path='{event.src_path}'")
|
||||||
|
|
||||||
def on_moved(event):
|
def on_moved(event):
|
||||||
global shouldUpdate
|
global shouldUpdate
|
||||||
@@ -235,7 +239,7 @@ def start_library_monitor():
|
|||||||
shouldUpdate = True
|
shouldUpdate = True
|
||||||
signal.notify()
|
signal.notify()
|
||||||
else:
|
else:
|
||||||
plugin.Trace("Ignoring on_any_event trigger.")
|
plugin.TraceOnce("Ignoring on_any_event trigger.")
|
||||||
|
|
||||||
event_handler.on_created = on_created
|
event_handler.on_created = on_created
|
||||||
event_handler.on_deleted = on_deleted
|
event_handler.on_deleted = on_deleted
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ config = {
|
|||||||
# 3 = 3rd specified weekday of the month.
|
# 3 = 3rd specified weekday of the month.
|
||||||
# 4 = 4th specified weekday of the month.
|
# 4 = 4th specified weekday of the month.
|
||||||
# Example monthly method.
|
# Example monthly method.
|
||||||
{"task" : "Backup", "weekday" : "saturday", "time" : "01:00", "monthly" : 2}, # Backup -> [Backup] 2nd saturday of the month at 1AM
|
{"task" : "Backup", "weekday" : "saturday", "time" : "02:30", "monthly" : 2}, # Backup -> [Backup] 2nd saturday of the month at 2:30AM
|
||||||
|
|
||||||
# The following is a place holder for a plugin.
|
# The following is a place holder for a plugin.
|
||||||
{"task" : "PluginButtonName_Here", "pluginId" : "PluginId_Here", "hours" : 0}, # The zero frequency value makes this task disabled.
|
{"task" : "PluginButtonName_Here", "pluginId" : "PluginId_Here", "hours" : 0}, # The zero frequency value makes this task disabled.
|
||||||
|
|||||||
Reference in New Issue
Block a user