-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Audio Backend #6824
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Audio Backend #6824
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,87 @@ | ||
| # options for analysis running | ||
| run: | ||
| timeout: 5m | ||
|
|
||
| linters: | ||
| disable-all: true | ||
| enable: | ||
| # Default set of linters from golangci-lint | ||
| - errcheck | ||
| - gosimple | ||
| - govet | ||
| - ineffassign | ||
| - staticcheck | ||
| - typecheck | ||
| - unused | ||
| # Linters added by the stash project. | ||
| # - contextcheck | ||
| - copyloopvar | ||
| - dogsled | ||
| - errchkjson | ||
| - errorlint | ||
| # - exhaustive | ||
| - gocritic | ||
| # - goerr113 | ||
| - gofmt | ||
| # - gomnd | ||
| # - ifshort | ||
| - misspell | ||
| # - nakedret | ||
| - noctx | ||
| - revive | ||
| - rowserrcheck | ||
| - sqlclosecheck | ||
|
|
||
| # Project-specific linter overrides | ||
| linters-settings: | ||
| gofmt: | ||
| simplify: false | ||
|
|
||
| errorlint: | ||
| # Disable errorf because there are false positives, where you don't want to wrap | ||
| # an error. | ||
| errorf: false | ||
| asserts: true | ||
| comparison: true | ||
|
|
||
| revive: | ||
| ignore-generated-header: true | ||
| severity: error | ||
| confidence: 0.8 | ||
| rules: | ||
| - name: blank-imports | ||
| disabled: true | ||
| - name: context-as-argument | ||
| - name: context-keys-type | ||
| - name: dot-imports | ||
| - name: error-return | ||
| - name: error-strings | ||
| - name: error-naming | ||
| - name: exported | ||
| disabled: true | ||
| - name: if-return | ||
| disabled: true | ||
| - name: increment-decrement | ||
| - name: var-naming | ||
| disabled: true | ||
| - name: var-declaration | ||
| - name: package-comments | ||
| - name: range | ||
| - name: receiver-naming | ||
| - name: time-naming | ||
| - name: unexported-return | ||
| disabled: true | ||
| - name: indent-error-flow | ||
| disabled: true | ||
| - name: errorf | ||
| - name: empty-block | ||
| disabled: true | ||
| - name: superfluous-else | ||
| - name: unused-parameter | ||
| disabled: true | ||
| - name: unreachable-code | ||
| - name: redefines-builtin-id | ||
|
|
||
| rowserrcheck: | ||
| packages: | ||
| - github.com/jmoiron/sqlx |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,87 +1,86 @@ | ||
| # options for analysis running | ||
| run: | ||
| timeout: 5m | ||
|
|
||
| version: "2" | ||
| linters: | ||
| disable-all: true | ||
| default: none | ||
| enable: | ||
| # Default set of linters from golangci-lint | ||
| - errcheck | ||
| - gosimple | ||
| - govet | ||
| - ineffassign | ||
| - staticcheck | ||
| - typecheck | ||
| - unused | ||
| # Linters added by the stash project. | ||
| # - contextcheck | ||
| - copyloopvar | ||
| - dogsled | ||
| - errcheck | ||
| - errchkjson | ||
| - errorlint | ||
| # - exhaustive | ||
| - gocritic | ||
| # - goerr113 | ||
| - gofmt | ||
| # - gomnd | ||
| # - ifshort | ||
| - govet | ||
| - ineffassign | ||
| - misspell | ||
| # - nakedret | ||
| - noctx | ||
| - revive | ||
| - rowserrcheck | ||
| - sqlclosecheck | ||
|
|
||
| # Project-specific linter overrides | ||
| linters-settings: | ||
| gofmt: | ||
| simplify: false | ||
|
|
||
| errorlint: | ||
| # Disable errorf because there are false positives, where you don't want to wrap | ||
| # an error. | ||
| errorf: false | ||
| asserts: true | ||
| comparison: true | ||
|
|
||
| revive: | ||
| ignore-generated-header: true | ||
| severity: error | ||
| confidence: 0.8 | ||
| rules: | ||
| - name: blank-imports | ||
| disabled: true | ||
| - name: context-as-argument | ||
| - name: context-keys-type | ||
| - name: dot-imports | ||
| - name: error-return | ||
| - name: error-strings | ||
| - name: error-naming | ||
| - name: exported | ||
| disabled: true | ||
| - name: if-return | ||
| disabled: true | ||
| - name: increment-decrement | ||
| - name: var-naming | ||
| disabled: true | ||
| - name: var-declaration | ||
| - name: package-comments | ||
| - name: range | ||
| - name: receiver-naming | ||
| - name: time-naming | ||
| - name: unexported-return | ||
| disabled: true | ||
| - name: indent-error-flow | ||
| disabled: true | ||
| - name: errorf | ||
| - name: empty-block | ||
| disabled: true | ||
| - name: superfluous-else | ||
| - name: unused-parameter | ||
| disabled: true | ||
| - name: unreachable-code | ||
| - name: redefines-builtin-id | ||
|
|
||
| rowserrcheck: | ||
| packages: | ||
| - github.com/jmoiron/sqlx | ||
| - staticcheck | ||
| - unused | ||
| settings: | ||
| errorlint: | ||
| errorf: false | ||
| asserts: true | ||
| comparison: true | ||
| revive: | ||
| confidence: 0.8 | ||
| severity: error | ||
| rules: | ||
| - name: blank-imports | ||
| disabled: true | ||
| - name: context-as-argument | ||
| - name: context-keys-type | ||
| - name: dot-imports | ||
| - name: error-return | ||
| - name: error-strings | ||
| - name: error-naming | ||
| - name: exported | ||
| disabled: true | ||
| - name: if-return | ||
| disabled: true | ||
| - name: increment-decrement | ||
| - name: var-naming | ||
| disabled: true | ||
| - name: var-declaration | ||
| - name: package-comments | ||
| - name: range | ||
| - name: receiver-naming | ||
| - name: time-naming | ||
| - name: unexported-return | ||
| disabled: true | ||
| - name: indent-error-flow | ||
| disabled: true | ||
| - name: errorf | ||
| - name: empty-block | ||
| disabled: true | ||
| - name: superfluous-else | ||
| - name: unused-parameter | ||
| disabled: true | ||
| - name: unreachable-code | ||
| - name: redefines-builtin-id | ||
| rowserrcheck: | ||
| packages: | ||
| - github.com/jmoiron/sqlx | ||
| exclusions: | ||
| generated: lax | ||
| presets: | ||
| - comments | ||
| - common-false-positives | ||
| - legacy | ||
| - std-error-handling | ||
| paths: | ||
| - third_party$ | ||
| - builtin$ | ||
| - examples$ | ||
| formatters: | ||
| enable: | ||
| - gofmt | ||
| settings: | ||
| gofmt: | ||
| simplify: false | ||
| exclusions: | ||
| generated: lax | ||
| paths: | ||
| - third_party$ | ||
| - builtin$ | ||
| - examples$ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| # Audio Datatype | ||
|
|
||
| The `Audio` datatype is similar to `Scene` but stores audio-only media (i.e. Audiobooks, music, ASMR, etc). | ||
|
|
||
| ## Scope | ||
|
|
||
| - This ticket adds backend support for Audio Only, future tickets can add the UI elements | ||
| - Audio metadata: | ||
| - Title | ||
| - Artists (string? like director) | ||
| - Date | ||
| - Studio | ||
| - Performers | ||
| - Tags | ||
| - Details | ||
| - Urls | ||
| - Rating | ||
| - Organized | ||
| - O History | ||
| - Play History | ||
| - Studio Code | ||
| - NICE TO HAVES | ||
| - Groups | ||
| - Audio File metadata: | ||
| - duration | ||
| - audio codec | ||
| - FUTURE (to be considered at a later date) | ||
| - channels (mono, stereo, 5.1, 7.1) | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Would tthis really be needed? Currently scenes have audio and we don't track this at all.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would suggest looking at bitrate again, as this is tracked for scenes (the video portion).
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Mostly I was referring to the channels. I think bitrate would be fine. |
||
| - bitrate | ||
| - sample rate | ||
|
|
||
|
|
||
| ## TODO List | ||
|
|
||
| - [ ] `pkg/sqlite/migrations/86_audio.up.sql` | ||
| - Create a migration for the Audio type, very similar to Scene | ||
| - [ ] Duplicate much of `pkg/scene/*` into `pkg/audio/*` | ||
| - Exclude: markers, screenshot, preview, transcode, sprite | ||
| - [ ] Graphql | ||
| - [ ] Copy/modify `graphql/schema/types/scene.graphql` to `graphql/schema/types/audio.graphql` | ||
|
|
||
| ### Last Steps | ||
| - [ ] Delete this file upon completion of the feature | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Gykes / @WithoutPants : You can see a limited scope here. The database design
pkg/sqlite/migrations/86_audio.up.sqlshows the extent of the change.If I get a thumbs up, then I will start work. If you want to increase/reduce scope, or to wait for any other PRs, let me know here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should nail down where this is planning on going. XXX vs non XXX
I prefer the former as that's what this app is kind of aimed at. If we do XXX then I believe that having Performer and Artist in the audio metadata would be confusing and would conflict. I say we just roll with what we currently have and not add Artists.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am okay with all suggested changes.
Still waiting for some confirmation that the scope will be accepted before investing time into this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Gykes if you feel comfortable giving the thumbs up on this, then I can go ahead.
For all of your suggestions, I placed a 👍 to indicate that I agree and will make the change once I start working.
I will be using this for SFW, but don't mind building it for NSFW. I will adopt all your suggestions (except the rating100, see PR comment to discuss)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Based on the fact that the main dev has said it's okay in previous comments and casually in passing then I'm okay giving the thumbs up. I can test/review as you go or in chunks, whatever you are more comfortable doing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Gykes this will be a large PR, if you want to provide reviews as commits come, or wait till the end; whatever you think is best to ensure this gets merged. I am also open to excluding/deferring sections to reduce the PR size
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just give me a ping when you feel it's ready for a review/test