página de usuário
Deploy / Deploy (push) Successful in 1m51s
Details
Deploy / Deploy (push) Successful in 1m51s
Details
This commit is contained in:
parent
cb4ea96ccc
commit
abf29dc9c7
639
_data/all.yml
639
_data/all.yml
|
|
@ -267131,6 +267131,645 @@
|
|||
plugin_name: audiofileprocessor
|
||||
track_name: Acid
|
||||
type: plugin
|
||||
- bpm: '140'
|
||||
file: doideirinha
|
||||
original_title: doideirinha
|
||||
src: /var/www/html/trens/src_mmpSearch/mmp/doideirinha.mmp
|
||||
tags:
|
||||
TAG:
|
||||
- plugin
|
||||
- sample
|
||||
- bassline
|
||||
- automation
|
||||
automation:
|
||||
- Automation track
|
||||
bassline:
|
||||
- Beat/Bassline 0
|
||||
plugin:
|
||||
- tripleoscillator
|
||||
- audiofileprocessor
|
||||
sample:
|
||||
- Sample track
|
||||
tracks:
|
||||
- arpeggiator:
|
||||
arp: '0'
|
||||
arp-enabled: '0'
|
||||
arpcycle: '0'
|
||||
arpdir: '0'
|
||||
arpgate: '100'
|
||||
arpmiss: '0'
|
||||
arpmode: '0'
|
||||
arprange: '1'
|
||||
arpskip: '0'
|
||||
arptime: '100'
|
||||
arptime_denominator: '4'
|
||||
arptime_numerator: '4'
|
||||
arptime_syncmode: '0'
|
||||
chordcreator:
|
||||
chord: '0'
|
||||
chord-enabled: '0'
|
||||
chordrange: '1'
|
||||
elcut:
|
||||
amt: '0'
|
||||
att: '0'
|
||||
ctlenvamt: '0'
|
||||
dec: '0.5'
|
||||
hold: '0.5'
|
||||
lamt: '0'
|
||||
latt: '0'
|
||||
lpdel: '0'
|
||||
lshp: '0'
|
||||
lspd: '0.1'
|
||||
lspd_denominator: '4'
|
||||
lspd_numerator: '4'
|
||||
lspd_syncmode: '0'
|
||||
pdel: '0'
|
||||
rel: '0.1'
|
||||
sustain: '0.5'
|
||||
userwavefile: ''
|
||||
x100: '0'
|
||||
eldata:
|
||||
fcut: '14000'
|
||||
fres: '0.5'
|
||||
ftype: '0'
|
||||
fwet: '0'
|
||||
elres:
|
||||
amt: '0'
|
||||
att: '0'
|
||||
ctlenvamt: '0'
|
||||
dec: '0.5'
|
||||
hold: '0.5'
|
||||
lamt: '0'
|
||||
latt: '0'
|
||||
lpdel: '0'
|
||||
lshp: '0'
|
||||
lspd: '0.1'
|
||||
lspd_denominator: '4'
|
||||
lspd_numerator: '4'
|
||||
lspd_syncmode: '0'
|
||||
pdel: '0'
|
||||
rel: '0.1'
|
||||
sustain: '0.5'
|
||||
userwavefile: ''
|
||||
x100: '0'
|
||||
elvol:
|
||||
amt: '0'
|
||||
att: '0'
|
||||
ctlenvamt: '0'
|
||||
dec: '0.5'
|
||||
hold: '0.5'
|
||||
lamt: '0'
|
||||
latt: '0'
|
||||
lpdel: '0'
|
||||
lshp: '0'
|
||||
lspd: '0.1'
|
||||
lspd_denominator: '4'
|
||||
lspd_numerator: '4'
|
||||
lspd_syncmode: '0'
|
||||
pdel: '0'
|
||||
rel: '0.1'
|
||||
sustain: '0.5'
|
||||
userwavefile: ''
|
||||
x100: '0'
|
||||
fxchain:
|
||||
enabled: '0'
|
||||
numofeffects: '0'
|
||||
instrument_name: tripleoscillator
|
||||
instrumenttrack:
|
||||
basenote: '57'
|
||||
fxch: '1'
|
||||
pan: '0'
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
midiport:
|
||||
basevelocity: '63'
|
||||
fixedinputvelocity: '-1'
|
||||
fixedoutputnote: '-1'
|
||||
fixedoutputvelocity: '-1'
|
||||
inputchannel: '0'
|
||||
inputcontroller: '0'
|
||||
outputchannel: '1'
|
||||
outputcontroller: '0'
|
||||
outputprogram: '1'
|
||||
readable: '0'
|
||||
writable: '0'
|
||||
tags: tripleoscillator
|
||||
track_name: TripleOscillator
|
||||
tripleoscillator:
|
||||
coarse0: '0'
|
||||
coarse1: '-12'
|
||||
coarse2: '-24'
|
||||
finel0: '0'
|
||||
finel1: '0'
|
||||
finel2: '0'
|
||||
finer0: '0'
|
||||
finer1: '0'
|
||||
finer2: '0'
|
||||
modalgo1: '2'
|
||||
modalgo2: '2'
|
||||
modalgo3: '2'
|
||||
pan0: '0'
|
||||
pan1: '0'
|
||||
pan2: '0'
|
||||
phoffset0: '0'
|
||||
phoffset1: '0'
|
||||
phoffset2: '0'
|
||||
stphdetun0: '0'
|
||||
stphdetun1: '0'
|
||||
stphdetun2: '0'
|
||||
userwavefile0: ''
|
||||
userwavefile1: ''
|
||||
userwavefile2: ''
|
||||
vol0: '33'
|
||||
vol1: '33'
|
||||
vol2: '33'
|
||||
wavetype0: '0'
|
||||
wavetype1: '0'
|
||||
wavetype2: '0'
|
||||
type: plugin
|
||||
- sample_info:
|
||||
pan: '0'
|
||||
vol: '100'
|
||||
sample_name: null
|
||||
track_name: Sample track
|
||||
type: sample
|
||||
- bassline_name: Beat/Bassline 0
|
||||
instruments:
|
||||
- basenote: '57'
|
||||
fxch: '0'
|
||||
instrument_name: Kicker
|
||||
instrument_type: '0'
|
||||
pan: '0'
|
||||
patterns:
|
||||
- name: Kicker
|
||||
pos: '0'
|
||||
steps:
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
plugin_name: kicker
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
- audiofileprocessor:
|
||||
amp: '100'
|
||||
eframe: '1'
|
||||
interp: '1'
|
||||
lframe: '0'
|
||||
looped: '0'
|
||||
reversed: '0'
|
||||
sframe: '0'
|
||||
src: drums/clap04.ogg
|
||||
stutter: '0'
|
||||
basenote: '57'
|
||||
fxch: '0'
|
||||
instrument_name: clap04.ogg
|
||||
instrument_type: '0'
|
||||
pan: '0'
|
||||
patterns:
|
||||
- name: clap04.ogg
|
||||
pos: '0'
|
||||
steps:
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
plugin_name: audiofileprocessor
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
- audiofileprocessor:
|
||||
amp: '100'
|
||||
eframe: '1'
|
||||
interp: '1'
|
||||
lframe: '0'
|
||||
looped: '0'
|
||||
reversed: '0'
|
||||
sframe: '0'
|
||||
src: drums/hihat_closed01.ogg
|
||||
stutter: '0'
|
||||
basenote: '57'
|
||||
fxch: '0'
|
||||
instrument_name: hihat_closed01.ogg
|
||||
instrument_type: '0'
|
||||
pan: '0'
|
||||
patterns:
|
||||
- name: hihat_closed01.ogg
|
||||
pos: '0'
|
||||
steps:
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
plugin_name: audiofileprocessor
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
- audiofileprocessor:
|
||||
amp: '100'
|
||||
eframe: '1'
|
||||
interp: '1'
|
||||
lframe: '0'
|
||||
looped: '0'
|
||||
reversed: '0'
|
||||
sframe: '0'
|
||||
src: drums/kick01.ogg
|
||||
stutter: '0'
|
||||
basenote: '57'
|
||||
fxch: '0'
|
||||
instrument_name: kick01.ogg
|
||||
instrument_type: '0'
|
||||
pan: '0'
|
||||
patterns:
|
||||
- name: kick01.ogg
|
||||
pos: '0'
|
||||
steps:
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
plugin_name: audiofileprocessor
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
- audiofileprocessor:
|
||||
amp: '100'
|
||||
eframe: '1'
|
||||
interp: '1'
|
||||
lframe: '0'
|
||||
looped: '0'
|
||||
reversed: '0'
|
||||
sframe: '0'
|
||||
src: drums/hihat_opened03.ogg
|
||||
stutter: '0'
|
||||
basenote: '57'
|
||||
fxch: '0'
|
||||
instrument_name: hihat_opened03.ogg
|
||||
instrument_type: '0'
|
||||
pan: '0'
|
||||
patterns:
|
||||
- name: hihat_opened03.ogg
|
||||
pos: '0'
|
||||
steps:
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
plugin_name: audiofileprocessor
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
- audiofileprocessor:
|
||||
amp: '100'
|
||||
eframe: '1'
|
||||
interp: '1'
|
||||
lframe: '0'
|
||||
looped: '0'
|
||||
reversed: '0'
|
||||
sframe: '0'
|
||||
src: drums/shaker01.ogg
|
||||
stutter: '0'
|
||||
basenote: '57'
|
||||
fxch: '0'
|
||||
instrument_name: shaker01.ogg
|
||||
instrument_type: '0'
|
||||
pan: '0'
|
||||
patterns:
|
||||
- name: shaker01.ogg
|
||||
pos: '0'
|
||||
steps:
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
plugin_name: audiofileprocessor
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
- audiofileprocessor:
|
||||
amp: '100'
|
||||
eframe: '1'
|
||||
interp: '1'
|
||||
lframe: '0'
|
||||
looped: '0'
|
||||
reversed: '0'
|
||||
sframe: '0'
|
||||
src: drums/snare_harsh01.ogg
|
||||
stutter: '0'
|
||||
basenote: '57'
|
||||
fxch: '0'
|
||||
instrument_name: snare_harsh01.ogg
|
||||
instrument_type: '0'
|
||||
pan: '0'
|
||||
patterns:
|
||||
- name: snare_harsh01.ogg
|
||||
pos: '0'
|
||||
steps:
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
plugin_name: audiofileprocessor
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
- audiofileprocessor:
|
||||
amp: '100'
|
||||
eframe: '1'
|
||||
interp: '1'
|
||||
lframe: '0'
|
||||
looped: '0'
|
||||
reversed: '0'
|
||||
sframe: '0'
|
||||
src: drums/zap01.ogg
|
||||
stutter: '0'
|
||||
basenote: '57'
|
||||
fxch: '0'
|
||||
instrument_name: zap01.ogg
|
||||
instrument_type: '0'
|
||||
pan: '0'
|
||||
patterns:
|
||||
- name: zap01.ogg
|
||||
pos: '0'
|
||||
steps:
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
plugin_name: audiofileprocessor
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
- audiofileprocessor:
|
||||
amp: '100'
|
||||
eframe: '1'
|
||||
interp: '1'
|
||||
lframe: '0'
|
||||
looped: '0'
|
||||
reversed: '0'
|
||||
sframe: '0'
|
||||
src: drums/wood01.ogg
|
||||
stutter: '0'
|
||||
basenote: '57'
|
||||
fxch: '0'
|
||||
instrument_name: wood01.ogg
|
||||
instrument_type: '0'
|
||||
pan: '0'
|
||||
patterns:
|
||||
- name: wood01.ogg
|
||||
pos: '0'
|
||||
steps:
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
plugin_name: audiofileprocessor
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
tags: audiofileprocessor
|
||||
type: bassline
|
||||
- automations:
|
||||
- automation_name: Automation track
|
||||
automation_patterns: []
|
||||
automationtrack: Present
|
||||
type: automation
|
||||
- arpeggiator:
|
||||
arp: '0'
|
||||
arp-enabled: '0'
|
||||
arpcycle: '0'
|
||||
arpdir: '0'
|
||||
arpgate: '100'
|
||||
arpmiss: '0'
|
||||
arpmode: '0'
|
||||
arprange: '1'
|
||||
arpskip: '0'
|
||||
arptime: '200'
|
||||
arptime_denominator: '4'
|
||||
arptime_numerator: '4'
|
||||
arptime_syncmode: '0'
|
||||
audiofileprocessor:
|
||||
amp: '100'
|
||||
eframe: '1'
|
||||
interp: '1'
|
||||
lframe: '0'
|
||||
looped: '0'
|
||||
reversed: '0'
|
||||
sframe: '0'
|
||||
src: instruments/steel_guitar_heavy_distorted01.ogg
|
||||
stutter: '0'
|
||||
chordcreator:
|
||||
chord: '0'
|
||||
chord-enabled: '0'
|
||||
chordrange: '1'
|
||||
elcut:
|
||||
amt: '0'
|
||||
att: '0'
|
||||
ctlenvamt: '0'
|
||||
dec: '0.5'
|
||||
hold: '0.5'
|
||||
lamt: '0'
|
||||
latt: '0'
|
||||
lpdel: '0'
|
||||
lshp: '0'
|
||||
lspd: '0.1'
|
||||
lspd_denominator: '4'
|
||||
lspd_numerator: '4'
|
||||
lspd_syncmode: '0'
|
||||
pdel: '0'
|
||||
rel: '0.1'
|
||||
sustain: '0.5'
|
||||
userwavefile: ''
|
||||
x100: '0'
|
||||
eldata:
|
||||
fcut: '14000'
|
||||
fres: '0.5'
|
||||
ftype: '0'
|
||||
fwet: '0'
|
||||
elres:
|
||||
amt: '0'
|
||||
att: '0'
|
||||
ctlenvamt: '0'
|
||||
dec: '0.5'
|
||||
hold: '0.5'
|
||||
lamt: '0'
|
||||
latt: '0'
|
||||
lpdel: '0'
|
||||
lshp: '0'
|
||||
lspd: '0.1'
|
||||
lspd_denominator: '4'
|
||||
lspd_numerator: '4'
|
||||
lspd_syncmode: '0'
|
||||
pdel: '0'
|
||||
rel: '0.1'
|
||||
sustain: '0.5'
|
||||
userwavefile: ''
|
||||
x100: '0'
|
||||
elvol:
|
||||
amt: '0'
|
||||
att: '0'
|
||||
ctlenvamt: '0'
|
||||
dec: '0.5'
|
||||
hold: '0.5'
|
||||
lamt: '0'
|
||||
latt: '0'
|
||||
lpdel: '0'
|
||||
lshp: '0'
|
||||
lspd: '0.1'
|
||||
lspd_denominator: '4'
|
||||
lspd_numerator: '4'
|
||||
lspd_syncmode: '0'
|
||||
pdel: '0'
|
||||
rel: '0.1'
|
||||
sustain: '0.5'
|
||||
userwavefile: ''
|
||||
x100: '0'
|
||||
fxchain:
|
||||
enabled: '0'
|
||||
numofeffects: '0'
|
||||
instrumenttrack:
|
||||
basenote: '57'
|
||||
fxch: '2'
|
||||
pan: '0'
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
midiport:
|
||||
basevelocity: '63'
|
||||
fixedinputvelocity: '-1'
|
||||
fixedoutputnote: '-1'
|
||||
fixedoutputvelocity: '-1'
|
||||
inputchannel: '0'
|
||||
inputcontroller: '0'
|
||||
outputchannel: '1'
|
||||
outputcontroller: '0'
|
||||
outputprogram: '1'
|
||||
readable: '0'
|
||||
writable: '0'
|
||||
plugin_name: audiofileprocessor
|
||||
track_name: steel_guitar_heavy_distorted01.ogg
|
||||
type: plugin
|
||||
- bpm: '113'
|
||||
file: 2019winter-song
|
||||
original_title: 2019Winter_Song
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
- classical-sample-of-a-melodic-music-lmms.wav
|
||||
- deep-house-vespertine-feat-georg-no-days-off.wav
|
||||
- demo-aesthetescence.wav
|
||||
- doideirinha.wav
|
||||
- dr-wily-theme.wav
|
||||
- drake.wav
|
||||
- dreamhop-animal-l-bonus-r0und-ep.wav
|
||||
|
|
|
|||
|
|
@ -0,0 +1,639 @@
|
|||
bpm: '140'
|
||||
file: doideirinha
|
||||
original_title: doideirinha
|
||||
src: /var/www/html/trens/src_mmpSearch/mmp/doideirinha.mmp
|
||||
tags:
|
||||
TAG:
|
||||
- plugin
|
||||
- sample
|
||||
- bassline
|
||||
- automation
|
||||
automation:
|
||||
- Automation track
|
||||
bassline:
|
||||
- Beat/Bassline 0
|
||||
plugin:
|
||||
- tripleoscillator
|
||||
- audiofileprocessor
|
||||
sample:
|
||||
- Sample track
|
||||
tracks:
|
||||
- arpeggiator:
|
||||
arp: '0'
|
||||
arp-enabled: '0'
|
||||
arpcycle: '0'
|
||||
arpdir: '0'
|
||||
arpgate: '100'
|
||||
arpmiss: '0'
|
||||
arpmode: '0'
|
||||
arprange: '1'
|
||||
arpskip: '0'
|
||||
arptime: '100'
|
||||
arptime_denominator: '4'
|
||||
arptime_numerator: '4'
|
||||
arptime_syncmode: '0'
|
||||
chordcreator:
|
||||
chord: '0'
|
||||
chord-enabled: '0'
|
||||
chordrange: '1'
|
||||
elcut:
|
||||
amt: '0'
|
||||
att: '0'
|
||||
ctlenvamt: '0'
|
||||
dec: '0.5'
|
||||
hold: '0.5'
|
||||
lamt: '0'
|
||||
latt: '0'
|
||||
lpdel: '0'
|
||||
lshp: '0'
|
||||
lspd: '0.1'
|
||||
lspd_denominator: '4'
|
||||
lspd_numerator: '4'
|
||||
lspd_syncmode: '0'
|
||||
pdel: '0'
|
||||
rel: '0.1'
|
||||
sustain: '0.5'
|
||||
userwavefile: ''
|
||||
x100: '0'
|
||||
eldata:
|
||||
fcut: '14000'
|
||||
fres: '0.5'
|
||||
ftype: '0'
|
||||
fwet: '0'
|
||||
elres:
|
||||
amt: '0'
|
||||
att: '0'
|
||||
ctlenvamt: '0'
|
||||
dec: '0.5'
|
||||
hold: '0.5'
|
||||
lamt: '0'
|
||||
latt: '0'
|
||||
lpdel: '0'
|
||||
lshp: '0'
|
||||
lspd: '0.1'
|
||||
lspd_denominator: '4'
|
||||
lspd_numerator: '4'
|
||||
lspd_syncmode: '0'
|
||||
pdel: '0'
|
||||
rel: '0.1'
|
||||
sustain: '0.5'
|
||||
userwavefile: ''
|
||||
x100: '0'
|
||||
elvol:
|
||||
amt: '0'
|
||||
att: '0'
|
||||
ctlenvamt: '0'
|
||||
dec: '0.5'
|
||||
hold: '0.5'
|
||||
lamt: '0'
|
||||
latt: '0'
|
||||
lpdel: '0'
|
||||
lshp: '0'
|
||||
lspd: '0.1'
|
||||
lspd_denominator: '4'
|
||||
lspd_numerator: '4'
|
||||
lspd_syncmode: '0'
|
||||
pdel: '0'
|
||||
rel: '0.1'
|
||||
sustain: '0.5'
|
||||
userwavefile: ''
|
||||
x100: '0'
|
||||
fxchain:
|
||||
enabled: '0'
|
||||
numofeffects: '0'
|
||||
instrument_name: tripleoscillator
|
||||
instrumenttrack:
|
||||
basenote: '57'
|
||||
fxch: '1'
|
||||
pan: '0'
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
midiport:
|
||||
basevelocity: '63'
|
||||
fixedinputvelocity: '-1'
|
||||
fixedoutputnote: '-1'
|
||||
fixedoutputvelocity: '-1'
|
||||
inputchannel: '0'
|
||||
inputcontroller: '0'
|
||||
outputchannel: '1'
|
||||
outputcontroller: '0'
|
||||
outputprogram: '1'
|
||||
readable: '0'
|
||||
writable: '0'
|
||||
tags: tripleoscillator
|
||||
track_name: TripleOscillator
|
||||
tripleoscillator:
|
||||
coarse0: '0'
|
||||
coarse1: '-12'
|
||||
coarse2: '-24'
|
||||
finel0: '0'
|
||||
finel1: '0'
|
||||
finel2: '0'
|
||||
finer0: '0'
|
||||
finer1: '0'
|
||||
finer2: '0'
|
||||
modalgo1: '2'
|
||||
modalgo2: '2'
|
||||
modalgo3: '2'
|
||||
pan0: '0'
|
||||
pan1: '0'
|
||||
pan2: '0'
|
||||
phoffset0: '0'
|
||||
phoffset1: '0'
|
||||
phoffset2: '0'
|
||||
stphdetun0: '0'
|
||||
stphdetun1: '0'
|
||||
stphdetun2: '0'
|
||||
userwavefile0: ''
|
||||
userwavefile1: ''
|
||||
userwavefile2: ''
|
||||
vol0: '33'
|
||||
vol1: '33'
|
||||
vol2: '33'
|
||||
wavetype0: '0'
|
||||
wavetype1: '0'
|
||||
wavetype2: '0'
|
||||
type: plugin
|
||||
- sample_info:
|
||||
pan: '0'
|
||||
vol: '100'
|
||||
sample_name: null
|
||||
track_name: Sample track
|
||||
type: sample
|
||||
- bassline_name: Beat/Bassline 0
|
||||
instruments:
|
||||
- basenote: '57'
|
||||
fxch: '0'
|
||||
instrument_name: Kicker
|
||||
instrument_type: '0'
|
||||
pan: '0'
|
||||
patterns:
|
||||
- name: Kicker
|
||||
pos: '0'
|
||||
steps:
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
plugin_name: kicker
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
- audiofileprocessor:
|
||||
amp: '100'
|
||||
eframe: '1'
|
||||
interp: '1'
|
||||
lframe: '0'
|
||||
looped: '0'
|
||||
reversed: '0'
|
||||
sframe: '0'
|
||||
src: drums/clap04.ogg
|
||||
stutter: '0'
|
||||
basenote: '57'
|
||||
fxch: '0'
|
||||
instrument_name: clap04.ogg
|
||||
instrument_type: '0'
|
||||
pan: '0'
|
||||
patterns:
|
||||
- name: clap04.ogg
|
||||
pos: '0'
|
||||
steps:
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
plugin_name: audiofileprocessor
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
- audiofileprocessor:
|
||||
amp: '100'
|
||||
eframe: '1'
|
||||
interp: '1'
|
||||
lframe: '0'
|
||||
looped: '0'
|
||||
reversed: '0'
|
||||
sframe: '0'
|
||||
src: drums/hihat_closed01.ogg
|
||||
stutter: '0'
|
||||
basenote: '57'
|
||||
fxch: '0'
|
||||
instrument_name: hihat_closed01.ogg
|
||||
instrument_type: '0'
|
||||
pan: '0'
|
||||
patterns:
|
||||
- name: hihat_closed01.ogg
|
||||
pos: '0'
|
||||
steps:
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
plugin_name: audiofileprocessor
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
- audiofileprocessor:
|
||||
amp: '100'
|
||||
eframe: '1'
|
||||
interp: '1'
|
||||
lframe: '0'
|
||||
looped: '0'
|
||||
reversed: '0'
|
||||
sframe: '0'
|
||||
src: drums/kick01.ogg
|
||||
stutter: '0'
|
||||
basenote: '57'
|
||||
fxch: '0'
|
||||
instrument_name: kick01.ogg
|
||||
instrument_type: '0'
|
||||
pan: '0'
|
||||
patterns:
|
||||
- name: kick01.ogg
|
||||
pos: '0'
|
||||
steps:
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
plugin_name: audiofileprocessor
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
- audiofileprocessor:
|
||||
amp: '100'
|
||||
eframe: '1'
|
||||
interp: '1'
|
||||
lframe: '0'
|
||||
looped: '0'
|
||||
reversed: '0'
|
||||
sframe: '0'
|
||||
src: drums/hihat_opened03.ogg
|
||||
stutter: '0'
|
||||
basenote: '57'
|
||||
fxch: '0'
|
||||
instrument_name: hihat_opened03.ogg
|
||||
instrument_type: '0'
|
||||
pan: '0'
|
||||
patterns:
|
||||
- name: hihat_opened03.ogg
|
||||
pos: '0'
|
||||
steps:
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
plugin_name: audiofileprocessor
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
- audiofileprocessor:
|
||||
amp: '100'
|
||||
eframe: '1'
|
||||
interp: '1'
|
||||
lframe: '0'
|
||||
looped: '0'
|
||||
reversed: '0'
|
||||
sframe: '0'
|
||||
src: drums/shaker01.ogg
|
||||
stutter: '0'
|
||||
basenote: '57'
|
||||
fxch: '0'
|
||||
instrument_name: shaker01.ogg
|
||||
instrument_type: '0'
|
||||
pan: '0'
|
||||
patterns:
|
||||
- name: shaker01.ogg
|
||||
pos: '0'
|
||||
steps:
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
plugin_name: audiofileprocessor
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
- audiofileprocessor:
|
||||
amp: '100'
|
||||
eframe: '1'
|
||||
interp: '1'
|
||||
lframe: '0'
|
||||
looped: '0'
|
||||
reversed: '0'
|
||||
sframe: '0'
|
||||
src: drums/snare_harsh01.ogg
|
||||
stutter: '0'
|
||||
basenote: '57'
|
||||
fxch: '0'
|
||||
instrument_name: snare_harsh01.ogg
|
||||
instrument_type: '0'
|
||||
pan: '0'
|
||||
patterns:
|
||||
- name: snare_harsh01.ogg
|
||||
pos: '0'
|
||||
steps:
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
plugin_name: audiofileprocessor
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
- audiofileprocessor:
|
||||
amp: '100'
|
||||
eframe: '1'
|
||||
interp: '1'
|
||||
lframe: '0'
|
||||
looped: '0'
|
||||
reversed: '0'
|
||||
sframe: '0'
|
||||
src: drums/zap01.ogg
|
||||
stutter: '0'
|
||||
basenote: '57'
|
||||
fxch: '0'
|
||||
instrument_name: zap01.ogg
|
||||
instrument_type: '0'
|
||||
pan: '0'
|
||||
patterns:
|
||||
- name: zap01.ogg
|
||||
pos: '0'
|
||||
steps:
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
plugin_name: audiofileprocessor
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
- audiofileprocessor:
|
||||
amp: '100'
|
||||
eframe: '1'
|
||||
interp: '1'
|
||||
lframe: '0'
|
||||
looped: '0'
|
||||
reversed: '0'
|
||||
sframe: '0'
|
||||
src: drums/wood01.ogg
|
||||
stutter: '0'
|
||||
basenote: '57'
|
||||
fxch: '0'
|
||||
instrument_name: wood01.ogg
|
||||
instrument_type: '0'
|
||||
pan: '0'
|
||||
patterns:
|
||||
- name: wood01.ogg
|
||||
pos: '0'
|
||||
steps:
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
- true
|
||||
- false
|
||||
- false
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
plugin_name: audiofileprocessor
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
tags: audiofileprocessor
|
||||
type: bassline
|
||||
- automations:
|
||||
- automation_name: Automation track
|
||||
automation_patterns: []
|
||||
automationtrack: Present
|
||||
type: automation
|
||||
- arpeggiator:
|
||||
arp: '0'
|
||||
arp-enabled: '0'
|
||||
arpcycle: '0'
|
||||
arpdir: '0'
|
||||
arpgate: '100'
|
||||
arpmiss: '0'
|
||||
arpmode: '0'
|
||||
arprange: '1'
|
||||
arpskip: '0'
|
||||
arptime: '200'
|
||||
arptime_denominator: '4'
|
||||
arptime_numerator: '4'
|
||||
arptime_syncmode: '0'
|
||||
audiofileprocessor:
|
||||
amp: '100'
|
||||
eframe: '1'
|
||||
interp: '1'
|
||||
lframe: '0'
|
||||
looped: '0'
|
||||
reversed: '0'
|
||||
sframe: '0'
|
||||
src: instruments/steel_guitar_heavy_distorted01.ogg
|
||||
stutter: '0'
|
||||
chordcreator:
|
||||
chord: '0'
|
||||
chord-enabled: '0'
|
||||
chordrange: '1'
|
||||
elcut:
|
||||
amt: '0'
|
||||
att: '0'
|
||||
ctlenvamt: '0'
|
||||
dec: '0.5'
|
||||
hold: '0.5'
|
||||
lamt: '0'
|
||||
latt: '0'
|
||||
lpdel: '0'
|
||||
lshp: '0'
|
||||
lspd: '0.1'
|
||||
lspd_denominator: '4'
|
||||
lspd_numerator: '4'
|
||||
lspd_syncmode: '0'
|
||||
pdel: '0'
|
||||
rel: '0.1'
|
||||
sustain: '0.5'
|
||||
userwavefile: ''
|
||||
x100: '0'
|
||||
eldata:
|
||||
fcut: '14000'
|
||||
fres: '0.5'
|
||||
ftype: '0'
|
||||
fwet: '0'
|
||||
elres:
|
||||
amt: '0'
|
||||
att: '0'
|
||||
ctlenvamt: '0'
|
||||
dec: '0.5'
|
||||
hold: '0.5'
|
||||
lamt: '0'
|
||||
latt: '0'
|
||||
lpdel: '0'
|
||||
lshp: '0'
|
||||
lspd: '0.1'
|
||||
lspd_denominator: '4'
|
||||
lspd_numerator: '4'
|
||||
lspd_syncmode: '0'
|
||||
pdel: '0'
|
||||
rel: '0.1'
|
||||
sustain: '0.5'
|
||||
userwavefile: ''
|
||||
x100: '0'
|
||||
elvol:
|
||||
amt: '0'
|
||||
att: '0'
|
||||
ctlenvamt: '0'
|
||||
dec: '0.5'
|
||||
hold: '0.5'
|
||||
lamt: '0'
|
||||
latt: '0'
|
||||
lpdel: '0'
|
||||
lshp: '0'
|
||||
lspd: '0.1'
|
||||
lspd_denominator: '4'
|
||||
lspd_numerator: '4'
|
||||
lspd_syncmode: '0'
|
||||
pdel: '0'
|
||||
rel: '0.1'
|
||||
sustain: '0.5'
|
||||
userwavefile: ''
|
||||
x100: '0'
|
||||
fxchain:
|
||||
enabled: '0'
|
||||
numofeffects: '0'
|
||||
instrumenttrack:
|
||||
basenote: '57'
|
||||
fxch: '2'
|
||||
pan: '0'
|
||||
pitch: '0'
|
||||
pitchrange: '1'
|
||||
usemasterpitch: '1'
|
||||
vol: '100'
|
||||
midiport:
|
||||
basevelocity: '63'
|
||||
fixedinputvelocity: '-1'
|
||||
fixedoutputnote: '-1'
|
||||
fixedoutputvelocity: '-1'
|
||||
inputchannel: '0'
|
||||
inputcontroller: '0'
|
||||
outputchannel: '1'
|
||||
outputcontroller: '0'
|
||||
outputprogram: '1'
|
||||
readable: '0'
|
||||
writable: '0'
|
||||
plugin_name: audiofileprocessor
|
||||
track_name: steel_guitar_heavy_distorted01.ogg
|
||||
type: plugin
|
||||
BIN
_data/users.db
BIN
_data/users.db
Binary file not shown.
275
pages/perfil.md
275
pages/perfil.md
|
|
@ -35,13 +35,9 @@ permalink: /perfil/
|
|||
<div class="columns" style="margin-top: 50px;">
|
||||
<div class="column is-8">
|
||||
<h1 class="title is-3" id="display-username">Carregando...</h1>
|
||||
|
||||
<p class="subtitle is-6 has-text-grey" id="display-bio">...</p>
|
||||
|
||||
<div class="tags mt-3" id="display-tags">
|
||||
</div>
|
||||
<div class="tags mt-3" id="display-tags"></div>
|
||||
</div>
|
||||
|
||||
<div class="column is-4 has-text-right">
|
||||
<button class="button is-info is-outlined" id="btn-edit-profile">
|
||||
<i class="fa-solid fa-edit mr-2"></i> Editar Perfil
|
||||
|
|
@ -60,9 +56,7 @@ permalink: /perfil/
|
|||
<input class="input" type="text" name="username" id="input-username" required>
|
||||
<span class="icon is-small is-left"><i class="fa-solid fa-user"></i></span>
|
||||
</div>
|
||||
<p class="help">Alterar seu nome pode quebrar links antigos.</p>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<label class="label">Bio (Max 240)</label>
|
||||
<div class="control">
|
||||
|
|
@ -70,22 +64,16 @@ permalink: /perfil/
|
|||
</div>
|
||||
<p class="help has-text-right" id="char-count">0/240</p>
|
||||
</div>
|
||||
|
||||
<div class="field">
|
||||
<label class="label">Tags (separadas por vírgula)</label>
|
||||
<label class="label">Tags</label>
|
||||
<div class="control has-icons-left">
|
||||
<input class="input" type="text" name="tags" id="input-tags" placeholder="Ex: Trap, Dark, Samples, LMMS">
|
||||
<input class="input" type="text" name="tags" id="input-tags" placeholder="Ex: Trap, Dark, Samples">
|
||||
<span class="icon is-small is-left"><i class="fa-solid fa-hashtag"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field is-grouped">
|
||||
<div class="control">
|
||||
<button type="submit" class="button is-success">Salvar Alterações</button>
|
||||
</div>
|
||||
<div class="control">
|
||||
<button type="button" class="button is-light" id="btn-cancel-edit">Cancelar</button>
|
||||
</div>
|
||||
<div class="control"><button type="submit" class="button is-success">Salvar</button></div>
|
||||
<div class="control"><button type="button" class="button is-light" id="btn-cancel-edit">Cancelar</button></div>
|
||||
</div>
|
||||
<div id="update-msg" class="notification is-hidden mt-2"></div>
|
||||
</form>
|
||||
|
|
@ -96,14 +84,13 @@ permalink: /perfil/
|
|||
<ul>
|
||||
<li class="is-active" data-tab="projects-tab"><a><span class="icon"><i class="fa-solid fa-folder"></i></span> <span>Projetos</span></a></li>
|
||||
<li data-tab="samples-tab"><a><span class="icon"><i class="fa-solid fa-music"></i></span> <span>Samples</span></a></li>
|
||||
<li data-tab="recordings-tab"><a><span class="icon"><i class="fa-solid fa-microphone"></i></span> <span>Gravações</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="projects-tab" class="content-tab-content">
|
||||
<div class="table-container">
|
||||
<table class="table is-fullwidth is-hoverable">
|
||||
<thead><tr><th>Nome</th><th>Data</th><th>Ações</th></tr></thead>
|
||||
<table class="table is-fullwidth is-hoverable is-striped">
|
||||
<thead><tr><th>Nome do Projeto</th><th>Data</th><th class="has-text-right">Ações</th></tr></thead>
|
||||
<tbody id="projects-list">
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -112,91 +99,156 @@ permalink: /perfil/
|
|||
</div>
|
||||
|
||||
<div id="samples-tab" class="content-tab-content is-hidden">
|
||||
<p class="has-text-centered has-text-grey p-5">Funcionalidade de Samples em desenvolvimento.</p>
|
||||
<p class="has-text-centered has-text-grey p-5">Em breve.</p>
|
||||
</div>
|
||||
|
||||
<div id="recordings-tab" class="content-tab-content is-hidden">
|
||||
<p class="has-text-centered has-text-grey p-5">Funcionalidade de Gravações em desenvolvimento.</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div id="preview-modal" class="modal">
|
||||
<div class="modal-background"></div>
|
||||
<div class="modal-card" style="width: 90%; max-width: 900px; height: 80vh;">
|
||||
<header class="modal-card-head" style="background-color: #f0f8ff; border-bottom: 1px solid #cfe8fc;">
|
||||
<p class="modal-card-title" id="modal-title" style="color: #205081; font-weight: bold;">Preview</p>
|
||||
<button class="delete" aria-label="close"></button>
|
||||
</header>
|
||||
<section class="modal-card-body p-0" style="background-color: #fff; overflow: hidden;">
|
||||
<iframe id="preview-iframe" src="" style="width: 100%; height: 100%; border: none;"></iframe>
|
||||
</section>
|
||||
<footer class="modal-card-foot" style="justify-content: flex-end; background-color: #fff; border-top: 1px solid #cfe8fc;">
|
||||
<button class="button" id="close-modal-btn">Fechar</button>
|
||||
<a href="#" id="full-edit-btn" target="_blank" class="button is-info">
|
||||
<span>Abrir em Nova Aba</span>
|
||||
<span class="icon is-small ml-1"><i class="fa-solid fa-up-right-from-square"></i></span>
|
||||
</a>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Referências do DOM
|
||||
// --- Lógica do Perfil ---
|
||||
const els = {
|
||||
username: document.getElementById('display-username'),
|
||||
bio: document.getElementById('display-bio'),
|
||||
tags: document.getElementById('display-tags'),
|
||||
avatar: document.getElementById('avatar-img'),
|
||||
cover: document.getElementById('cover-container'),
|
||||
|
||||
projectList: document.getElementById('projects-list'),
|
||||
// ... (referências do form de edição iguais ao anterior)
|
||||
formBox: document.getElementById('edit-form-box'),
|
||||
form: document.getElementById('profile-form'),
|
||||
inpUser: document.getElementById('input-username'),
|
||||
inpBio: document.getElementById('input-bio'),
|
||||
inpTags: document.getElementById('input-tags'),
|
||||
msg: document.getElementById('update-msg'),
|
||||
|
||||
btnEdit: document.getElementById('btn-edit-profile'),
|
||||
btnCancel: document.getElementById('btn-cancel-edit'),
|
||||
|
||||
projectList: document.getElementById('projects-list')
|
||||
msg: document.getElementById('update-msg')
|
||||
};
|
||||
|
||||
// 1. Carregar Perfil
|
||||
// --- Lógica do Modal ---
|
||||
const modal = document.getElementById('preview-modal');
|
||||
const iframe = document.getElementById('preview-iframe');
|
||||
const modalTitle = document.getElementById('modal-title');
|
||||
const fullEditBtn = document.getElementById('full-edit-btn');
|
||||
|
||||
function openModal(url, title, fullLink) {
|
||||
modalTitle.textContent = title;
|
||||
iframe.src = url;
|
||||
fullEditBtn.href = fullLink || url;
|
||||
modal.classList.add('is-active');
|
||||
document.documentElement.classList.add('is-clipped');
|
||||
}
|
||||
|
||||
function closeModal() {
|
||||
modal.classList.remove('is-active');
|
||||
document.documentElement.classList.remove('is-clipped');
|
||||
iframe.src = "";
|
||||
}
|
||||
|
||||
// Fecha modal nos botões X e Background
|
||||
document.querySelectorAll('.modal-background, .modal-card-head .delete, #close-modal-btn').forEach(el => {
|
||||
el.addEventListener('click', closeModal);
|
||||
});
|
||||
|
||||
// Limpa visual dentro do iframe para parecer um "modal nativo"
|
||||
iframe.addEventListener('load', () => {
|
||||
try {
|
||||
const doc = iframe.contentDocument || iframe.contentWindow.document;
|
||||
const style = doc.createElement('style');
|
||||
style.textContent = `
|
||||
.tabs, .navbar, .sidebar-wrapper, .main-header, footer { display: none !important; }
|
||||
.publication { padding-top: 0 !important; }
|
||||
body { background-color: #fff !important; overflow: auto !important; }
|
||||
`;
|
||||
doc.head.appendChild(style);
|
||||
} catch(e) {}
|
||||
});
|
||||
|
||||
// --- Carregar Dados ---
|
||||
async function loadProfile() {
|
||||
try {
|
||||
const res = await fetch('/api/user/profile');
|
||||
if (res.status === 401) window.location.href = '/login/';
|
||||
|
||||
if (res.status === 401) { window.location.href = '/login/'; return; }
|
||||
const data = await res.json();
|
||||
|
||||
// Preencher UI
|
||||
// Preenche Header
|
||||
els.username.textContent = data.username;
|
||||
els.bio.textContent = data.bio || "Sem bio definida.";
|
||||
|
||||
// Preencher Tags
|
||||
els.tags.innerHTML = '';
|
||||
if(data.tags){
|
||||
data.tags.split(',').forEach(tag => {
|
||||
if(tag.trim()) {
|
||||
const span = document.createElement('span');
|
||||
span.className = 'tag is-info is-light mr-1';
|
||||
span.textContent = tag.trim();
|
||||
els.tags.appendChild(span);
|
||||
}
|
||||
});
|
||||
}
|
||||
if(data.tags) data.tags.split(',').forEach(t => {
|
||||
if(t.trim()) els.tags.innerHTML += `<span class="tag is-info is-light mr-1">${t.trim()}</span>`;
|
||||
});
|
||||
|
||||
// Preencher Inputs do Form
|
||||
// Preenche Forms
|
||||
els.inpUser.value = data.username;
|
||||
els.inpBio.value = data.bio || "";
|
||||
els.inpTags.value = data.tags || "";
|
||||
|
||||
// Imagens (Se tiver implementado URL no back)
|
||||
// els.avatar.src = data.avatar;
|
||||
// els.cover.style.backgroundImage = `url('${data.cover}')`;
|
||||
|
||||
// Listar Projetos
|
||||
// Preenche Lista de Projetos com Lógica de Link e Modal
|
||||
els.projectList.innerHTML = '';
|
||||
if (data.projects && data.projects.length > 0) {
|
||||
data.projects.forEach(p => {
|
||||
// Prepara URLs
|
||||
// Assume que o arquivo mmp gera uma pagina em /projetos/NOME_SEM_EXTENSAO/
|
||||
const slug = p.filename.replace('.mmp', '').replace('.mmpz', '');
|
||||
|
||||
// URL da página pública do projeto
|
||||
const pageUrl = `/projetos/${slug}/`;
|
||||
|
||||
// URL do editor embedado
|
||||
const editorUrl = `/mmpSearch/creation.html?project=${p.filename}&embed=true`;
|
||||
|
||||
els.projectList.innerHTML += `
|
||||
<tr>
|
||||
<td><strong>${p.display_name}</strong></td>
|
||||
<td>${p.created_at}</td>
|
||||
<td>
|
||||
<a href="${p.download_link}" class="button is-small is-primary is-outlined">
|
||||
<i class="fa-solid fa-download"></i>
|
||||
<td style="vertical-align: middle;">
|
||||
<a href="${pageUrl}" class="has-text-weight-bold" style="color: #205081; text-decoration: none;">
|
||||
<span class="icon is-small mr-1"><i class="fa-solid fa-music"></i></span>
|
||||
${p.display_name}
|
||||
</a>
|
||||
<button class="button is-small is-danger is-outlined" onclick="deleteProject(${p.id})">
|
||||
<i class="fa-solid fa-trash"></i>
|
||||
</button>
|
||||
</td>
|
||||
<td style="vertical-align: middle;">${p.created_at}</td>
|
||||
<td class="has-text-right">
|
||||
<div class="buttons is-right">
|
||||
<button class="button is-small is-info is-light"
|
||||
onclick="openModal('${pageUrl}', 'Detalhes: ${p.display_name}', '${pageUrl}')"
|
||||
title="Ver detalhes">
|
||||
<i class="fa-solid fa-eye"></i>
|
||||
</button>
|
||||
|
||||
<button class="button is-small is-warning is-light"
|
||||
onclick="openModal('${editorUrl}', 'Editor: ${p.display_name}', '${editorUrl}')"
|
||||
title="Editar no Navegador">
|
||||
<i class="fa-solid fa-sliders"></i>
|
||||
</button>
|
||||
|
||||
<a href="${p.download_link}" class="button is-small is-primary is-light" title="Baixar MMP">
|
||||
<i class="fa-solid fa-download"></i>
|
||||
</a>
|
||||
|
||||
<button class="button is-small is-danger is-light" onclick="deleteProject(${p.id})" title="Excluir">
|
||||
<i class="fa-solid fa-trash"></i>
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
`;
|
||||
|
|
@ -204,78 +256,47 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||
} else {
|
||||
document.getElementById('no-projects').classList.remove('is-hidden');
|
||||
}
|
||||
|
||||
} catch(e) { console.error("Erro ao carregar perfil", e); }
|
||||
} catch(e) { console.error(e); }
|
||||
}
|
||||
|
||||
loadProfile();
|
||||
// --- Outros Handlers ---
|
||||
els.btnEdit.onclick = () => els.formBox.classList.remove('is-hidden');
|
||||
els.btnCancel.onclick = () => els.formBox.classList.add('is-hidden');
|
||||
|
||||
// Handler de update (mesmo do anterior)
|
||||
els.form.onsubmit = async (e) => {
|
||||
e.preventDefault();
|
||||
// ... (Código de fetch /api/user/update igual ao anterior) ...
|
||||
// Para economizar espaço, mantenha a lógica de POST aqui
|
||||
// No sucesso, chame loadProfile() e esconda o form
|
||||
|
||||
// Simulação rápida para o exemplo:
|
||||
const payload = { username: els.inpUser.value, bio: els.inpBio.value, tags: els.inpTags.value };
|
||||
const res = await fetch('/api/user/update', { method: 'POST', headers: {'Content-Type':'application/json'}, body: JSON.stringify(payload)});
|
||||
if(res.ok) { els.formBox.classList.add('is-hidden'); loadProfile(); }
|
||||
};
|
||||
|
||||
// 2. Lógica de Abas
|
||||
// Disponibiliza função global de delete
|
||||
window.deleteProject = async (id) => {
|
||||
if(!confirm("Apagar projeto permanentemente?")) return;
|
||||
const res = await fetch(`/api/project/${id}`, { method: 'DELETE' });
|
||||
if(res.ok) loadProfile();
|
||||
};
|
||||
|
||||
// Disponibiliza função global para modal (usada no onclick inline)
|
||||
window.openModal = openModal;
|
||||
|
||||
// Inicializa
|
||||
loadProfile();
|
||||
|
||||
// Abas
|
||||
document.querySelectorAll('.tabs li').forEach(tab => {
|
||||
tab.addEventListener('click', () => {
|
||||
document.querySelectorAll('.tabs li').forEach(t => t.classList.remove('is-active'));
|
||||
tab.classList.add('is-active');
|
||||
|
||||
document.querySelectorAll('.content-tab-content').forEach(c => c.classList.add('is-hidden'));
|
||||
document.getElementById(tab.dataset.tab).classList.remove('is-hidden');
|
||||
});
|
||||
});
|
||||
|
||||
// 3. Editar Perfil (Toggle)
|
||||
els.btnEdit.onclick = () => els.formBox.classList.remove('is-hidden');
|
||||
els.btnCancel.onclick = () => els.formBox.classList.add('is-hidden');
|
||||
|
||||
// 4. Salvar Alterações
|
||||
els.form.onsubmit = async (e) => {
|
||||
e.preventDefault();
|
||||
els.msg.classList.add('is-hidden');
|
||||
|
||||
const payload = {
|
||||
username: els.inpUser.value,
|
||||
bio: els.inpBio.value,
|
||||
tags: els.inpTags.value
|
||||
};
|
||||
|
||||
try {
|
||||
const res = await fetch('/api/user/update', {
|
||||
method: 'POST',
|
||||
headers: {'Content-Type': 'application/json'},
|
||||
body: JSON.stringify(payload)
|
||||
});
|
||||
const data = await res.json();
|
||||
|
||||
els.msg.textContent = data.message || data.error;
|
||||
els.msg.classList.remove('is-hidden');
|
||||
|
||||
if(res.ok) {
|
||||
els.msg.className = "notification is-success mt-2";
|
||||
setTimeout(() => {
|
||||
els.formBox.classList.add('is-hidden');
|
||||
loadProfile(); // Recarrega os dados na tela
|
||||
}, 1000);
|
||||
} else {
|
||||
els.msg.className = "notification is-danger mt-2";
|
||||
}
|
||||
} catch(err) {
|
||||
els.msg.textContent = "Erro de conexão";
|
||||
els.msg.className = "notification is-danger mt-2";
|
||||
els.msg.classList.remove('is-hidden');
|
||||
}
|
||||
};
|
||||
|
||||
// Contador de Caracteres da Bio
|
||||
els.inpBio.addEventListener('input', function() {
|
||||
document.getElementById('char-count').textContent = `${this.value.length}/240`;
|
||||
});
|
||||
|
||||
// Função Global para Deletar (opcional)
|
||||
window.deleteProject = async (id) => {
|
||||
if(!confirm("Tem certeza que deseja apagar este projeto?")) return;
|
||||
try {
|
||||
const res = await fetch(`/api/project/${id}`, { method: 'DELETE' });
|
||||
if(res.ok) loadProfile();
|
||||
else alert("Erro ao apagar");
|
||||
} catch(e) { alert("Erro de conexão"); }
|
||||
};
|
||||
});
|
||||
</script>
|
||||
Loading…
Reference in New Issue