Compare commits

..

7 Commits

Author SHA1 Message Date
notdraimdev c0b1bf0efb better update checker commit 2 2024-09-30 13:47:40 +02:00
notdraimdev 35acc4725b Better update checker 2024-09-30 13:47:40 +02:00
notdraimdev 13acb8002c dsew 2024-09-30 13:47:40 +02:00
Bucket Of Chicken 0564e0bd26 Version checker
Version checker
2024-09-25 20:33:03 +02:00
Bucket Of Chicken 63be2bb195 Merge pull request #4 from notdraimdev/development
Development to main merge
2024-09-25 18:00:19 +02:00
Bucket Of Chicken d6736d8ff5 Merge pull request #3 from notdraimdev/development
Fixed wrong playlist at start
2024-09-16 16:45:12 +02:00
Bucket Of Chicken 090e226053 Merge pull request #1 from notdraimdev/development
Development
2024-09-12 22:09:11 +02:00
18 changed files with 389 additions and 527 deletions
-20
View File
@@ -1,20 +0,0 @@
shader_type canvas_item;
void vertex() {
// Called for every vertex the material is visible on.
}
void fragment() {
vec2 animatedUV;
animatedUV.x = (sin(UV.x + (TIME))/2.0)+0.5;
animatedUV.y = (sin(UV.y + (TIME+(PI/2.0)))/2.0)+0.5;
float color1 = 1.0 *animatedUV.x;
float color2 = 1.0 *animatedUV.y;
COLOR = vec4((color1*0.7)+(color2*0.3),(color1*0.5)+(color2*0.5),(color1*0.3)+(color2*0.7),1);
}
//void light() {
// Called for every pixel for every light affecting the CanvasItem.
// Uncomment to replace the default light processing function with this one.
//}
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 769 B

+78 -257
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=67 format=3 uid="uid://b2sygl55s6fng"]
[gd_scene load_steps=62 format=3 uid="uid://b2sygl55s6fng"]
[ext_resource type="Script" path="res://main.gd" id="1_ubs1p"]
[ext_resource type="Texture2D" uid="uid://b8on1case224h" path="res://LoopPressed.png" id="2_iolk5"]
@@ -11,13 +11,13 @@
[ext_resource type="Texture2D" uid="uid://ba5wdmchyy50n" path="res://nighttime-in-the-hills-henry-porter.jpg" id="6_8abnc"]
[ext_resource type="Texture2D" uid="uid://ctb4s2nks73rx" path="res://Play.png" id="8_5v7u3"]
[ext_resource type="Shader" path="res://CoverShader.gdshader" id="8_4531v"]
[ext_resource type="Shader" path="res://Background1.gdshader" id="8_xtnau"]
[ext_resource type="Shader" path="res://Main.gdshader" id="10_20857"]
[ext_resource type="Texture2D" uid="uid://b00wlqid2jdvi" path="res://BigLogo.png" id="10_xnj6a"]
[ext_resource type="Texture2D" uid="uid://0r1tx6l1lc6x" path="res://settingscog.png" id="11_esjel"]
[ext_resource type="Script" path="res://cover.gd" id="12_3v50a"]
[ext_resource type="Script" path="res://playlists_panel.gd" id="12_8ie8y"]
[ext_resource type="Script" path="res://settings_button.gd" id="12_073mb"]
[ext_resource type="Texture2D" uid="uid://bdpat2sfflaxq" path="res://Youtube_logo.png" id="12_bc5ym"]
[ext_resource type="Texture2D" uid="uid://myq6n4bshduj" path="res://search.png" id="12_cv2gm"]
[ext_resource type="Script" path="res://search_bar.gd" id="12_mr42x"]
[ext_resource type="Script" path="res://select_playlist.gd" id="12_of5fe"]
@@ -29,15 +29,10 @@
[ext_resource type="Texture2D" uid="uid://1rstn6r2wisy" path="res://X.png" id="14_mioc4"]
[ext_resource type="Script" path="res://Spinning.gd" id="14_rhw4k"]
[ext_resource type="Script" path="res://yt_tab_button.gd" id="16_2t15p"]
[ext_resource type="Script" path="res://help_button.gd" id="17_4b8oh"]
[ext_resource type="Texture2D" uid="uid://bmbxyma4ra46p" path="res://Download.png" id="29_v44vi"]
[ext_resource type="Script" path="res://update_checker.gd" id="30_byc5i"]
[ext_resource type="Script" path="res://patch_notes_button.gd" id="31_hjsj1"]
[ext_resource type="Script" path="res://CustomButtonColor.gd" id="32_pwgec"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_kvkfy"]
shader = ExtResource("8_xtnau")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ku7tv"]
shader = ExtResource("10_20857")
shader_parameter/intensity = 1.0
@@ -92,6 +87,14 @@ keycode = 82
[sub_resource type="Shortcut" id="Shortcut_axi6u"]
events = [SubResource("InputEventKey_0jlka")]
[sub_resource type="InputEventKey" id="InputEventKey_117g0"]
device = -1
ctrl_pressed = true
keycode = 83
[sub_resource type="Shortcut" id="Shortcut_8p5o4"]
events = [SubResource("InputEventKey_117g0")]
[sub_resource type="InputEventKey" id="InputEventKey_5af16"]
device = -1
keycode = 32
@@ -145,20 +148,6 @@ keycode = 81
[sub_resource type="Shortcut" id="Shortcut_g3fcr"]
events = [SubResource("InputEventKey_puhgg")]
[sub_resource type="InputEventKey" id="InputEventKey_117g0"]
device = -1
ctrl_pressed = true
keycode = 83
[sub_resource type="Shortcut" id="Shortcut_8p5o4"]
events = [SubResource("InputEventKey_117g0")]
[sub_resource type="LabelSettings" id="LabelSettings_b1152"]
font_size = 31
[sub_resource type="LabelSettings" id="LabelSettings_ivhc6"]
font_size = 20
[node name="Node2D" type="Control"]
layout_mode = 3
anchors_preset = 15
@@ -170,11 +159,6 @@ script = ExtResource("1_ubs1p")
LoopPressed = ExtResource("2_iolk5")
LoopNotPressed = ExtResource("5_c2g63")
[node name="OSMediaIntigration" type="Control" parent="."]
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="WallpaperManager" type="Node2D" parent="." node_paths=PackedStringArray("Daytime", "Evening", "Nighttime")]
script = ExtResource("4_y372l")
Daytime = NodePath("../Daytime")
@@ -224,17 +208,6 @@ grow_vertical = 2
expand_mode = 5
stretch_mode = 6
[node name="UpdatingBG" type="ColorRect" parent="."]
visible = false
modulate = Color(1, 1, 1, 0.011)
material = SubResource("ShaderMaterial_kvkfy")
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Logo" type="Sprite2D" parent="."]
visible = false
modulate = Color(1, 1, 1, 0.686275)
@@ -277,7 +250,7 @@ script = ExtResource("12_3v50a")
layout_mode = 0
offset_left = 20.0
offset_top = 24.0
offset_right = 256.0
offset_right = 257.0
offset_bottom = 80.0
focus_mode = 0
toggle_mode = true
@@ -285,30 +258,20 @@ shortcut = SubResource("Shortcut_vp2fh")
text = "Playlists"
script = ExtResource("12_of5fe")
[node name="PlaylistPanelHolder" type="Control" parent="."]
layout_mode = 1
anchors_preset = 9
anchor_bottom = 1.0
offset_left = -30.0
offset_right = -30.0
offset_bottom = -190.0
grow_horizontal = 2
grow_vertical = 2
metadata/_edit_use_anchors_ = true
[node name="PlaylistsPanel" type="Control" parent="PlaylistPanelHolder"]
[node name="PlaylistsPanel" type="Control" parent="."]
visible = false
layout_mode = 2
anchors_preset = 0
anchor_bottom = 1.0
offset_left = 19.0
offset_top = 88.0
offset_right = 393.0
offset_bottom = 48.0
offset_bottom = -132.0
grow_vertical = 2
script = ExtResource("12_8ie8y")
metadata/_edit_use_anchors_ = true
[node name="ColorRect" type="ColorRect" parent="PlaylistPanelHolder/PlaylistsPanel"]
[node name="ColorRect" type="ColorRect" parent="PlaylistsPanel"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@@ -317,7 +280,7 @@ grow_horizontal = 2
grow_vertical = 2
color = Color(0.14902, 0.14902, 0.14902, 1)
[node name="PlaylistsContainer" type="ScrollContainer" parent="PlaylistPanelHolder/PlaylistsPanel"]
[node name="PlaylistsContainer" type="ScrollContainer" parent="PlaylistsPanel"]
layout_mode = 1
anchors_preset = -1
anchor_left = 0.0174419
@@ -329,66 +292,48 @@ grow_vertical = 2
follow_focus = true
horizontal_scroll_mode = 0
[node name="VBoxContainer" type="VBoxContainer" parent="PlaylistPanelHolder/PlaylistsPanel/PlaylistsContainer"]
[node name="VBoxContainer" type="VBoxContainer" parent="PlaylistsPanel/PlaylistsContainer"]
custom_minimum_size = Vector2(365.295, 0)
layout_mode = 2
size_flags_horizontal = 6
size_flags_vertical = 0
[node name="Label" type="Label" parent="PlaylistPanelHolder/PlaylistsPanel/PlaylistsContainer/VBoxContainer"]
[node name="Label" type="Label" parent="PlaylistsPanel/PlaylistsContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 0
text = "PLAYLISTS"
label_settings = SubResource("LabelSettings_0fjy0")
[node name="HBoxContainer" type="HBoxContainer" parent="PlaylistPanelHolder/PlaylistsPanel/PlaylistsContainer/VBoxContainer"]
[node name="HBoxContainer" type="HBoxContainer" parent="PlaylistsPanel/PlaylistsContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 4
size_flags_stretch_ratio = 0.0
alignment = 1
[node name="CreatePlaylist" type="Button" parent="PlaylistPanelHolder/PlaylistsPanel/PlaylistsContainer/VBoxContainer/HBoxContainer"]
[node name="CreatePlaylist" type="Button" parent="PlaylistsPanel/PlaylistsContainer/VBoxContainer/HBoxContainer"]
custom_minimum_size = Vector2(155, 42.335)
layout_mode = 2
focus_mode = 0
text = "Create
Playlist"
[node name="Control" type="Control" parent="PlaylistPanelHolder/PlaylistsPanel/PlaylistsContainer/VBoxContainer/HBoxContainer"]
[node name="Control" type="Control" parent="PlaylistsPanel/PlaylistsContainer/VBoxContainer/HBoxContainer"]
custom_minimum_size = Vector2(7.55, 0)
layout_mode = 2
[node name="PlayAll" type="Button" parent="PlaylistPanelHolder/PlaylistsPanel/PlaylistsContainer/VBoxContainer/HBoxContainer"]
[node name="PlayAll" type="Button" parent="PlaylistsPanel/PlaylistsContainer/VBoxContainer/HBoxContainer"]
custom_minimum_size = Vector2(155, 42.335)
layout_mode = 2
focus_mode = 0
toggle_mode = true
text = "Play all"
[node name="PlaylistsHolder" type="VBoxContainer" parent="PlaylistPanelHolder/PlaylistsPanel/PlaylistsContainer/VBoxContainer"]
[node name="PlaylistsHolder" type="VBoxContainer" parent="PlaylistsPanel/PlaylistsContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 4
alignment = 1
[node name="YtTabButton" type="Button" parent="."]
texture_filter = 1
layout_mode = 1
anchors_preset = -1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -77.0
offset_top = 131.0
offset_right = -5.0
offset_bottom = 203.0
grow_horizontal = 0
grow_vertical = 2
scale = Vector2(0.79, 0.79)
focus_mode = 0
toggle_mode = true
icon = ExtResource("29_v44vi")
script = ExtResource("16_2t15p")
[node name="YoutubeMenuHolder" type="Control" parent="."]
layout_mode = 1
anchors_preset = 1
@@ -414,7 +359,7 @@ anchor_bottom = 1.0
offset_left = -7.0
offset_top = -5.0
offset_right = 7.0
offset_bottom = 4.0
offset_bottom = 5.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.14902, 0.14902, 0.14902, 1)
@@ -423,7 +368,7 @@ color = Color(0.14902, 0.14902, 0.14902, 1)
layout_mode = 1
offset_right = 229.0
offset_bottom = 47.0
placeholder_text = "Link to download"
placeholder_text = "Youtube link(can be playlist)"
[node name="YTDownload" type="Button" parent="YoutubeMenuHolder/Youtube menu"]
layout_mode = 1
@@ -450,24 +395,6 @@ offset_bottom = 72.0
text = "NOTE: speeds depend on your internet"
label_settings = SubResource("LabelSettings_fiiw4")
[node name="HelpButton" type="Button" parent="YoutubeMenuHolder/Youtube menu"]
custom_minimum_size = Vector2(32, 32)
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -38.83
offset_top = -40.0
offset_right = 1.17004
grow_horizontal = 0
grow_vertical = 0
focus_mode = 0
text = "?"
script = ExtResource("17_4b8oh")
Open = "https://notdraimdev.github.io/SimplSite/GettingStarted.html"
[node name="CreatePlaylistsMenu" type="Control" parent="."]
visible = false
layout_mode = 1
@@ -581,6 +508,31 @@ focus_mode = 0
shortcut = SubResource("Shortcut_axi6u")
text = "Randomize"
[node name="SettingsButton" type="Button" parent="."]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -77.0
offset_top = 23.0
offset_right = -5.0
offset_bottom = 95.0
grow_horizontal = 0
scale = Vector2(0.79, 0.79)
focus_mode = 0
shortcut = SubResource("Shortcut_8p5o4")
icon = ExtResource("11_esjel")
script = ExtResource("12_073mb")
[node name="SettingsPopup" type="Popup" parent="."]
position = Vector2i(319, 85)
size = Vector2i(591, 501)
[node name="SettingsMenuChild" parent="SettingsPopup" instance=ExtResource("13_7atry")]
offset_left = -272.0
offset_top = 8.0
offset_bottom = 458.0
[node name="FileDialog" type="FileDialog" parent="."]
title = "Open a Directory"
position = Vector2i(28, 115)
@@ -685,12 +637,12 @@ anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 67.0
offset_top = -132.0
offset_top = -120.0
offset_right = -200.0
offset_bottom = -95.0
offset_bottom = -89.0
grow_horizontal = 2
grow_vertical = 0
text = "Please make a Playlist "
text = "Please select a directory"
label_settings = SubResource("LabelSettings_6prit")
clip_text = true
text_overrun_behavior = 2
@@ -702,7 +654,7 @@ anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 68.0
offset_top = -106.0
offset_top = -99.0
offset_right = -199.0
offset_bottom = -68.0
grow_horizontal = 2
@@ -840,6 +792,24 @@ offset_top = 174.0
offset_right = 1082.0
offset_bottom = 214.0
[node name="YtTabButton" type="Button" parent="."]
layout_mode = 1
anchors_preset = -1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -97.0
offset_top = 109.0
offset_right = 551.0
offset_bottom = 560.0
grow_horizontal = 0
grow_vertical = 2
scale = Vector2(0.105, 0.105)
focus_mode = 0
toggle_mode = true
icon = ExtResource("12_bc5ym")
flat = true
script = ExtResource("16_2t15p")
[node name="Version" type="Label" parent="."]
layout_mode = 1
anchors_preset = 3
@@ -851,66 +821,9 @@ offset_left = -64.0
offset_top = -23.0
grow_horizontal = 0
grow_vertical = 0
text = "v1.4.6"
text = "v1.3.3"
horizontal_alignment = 2
[node name="SettingsButton" type="Button" parent="."]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -77.0
offset_top = 23.0
offset_right = -5.0
offset_bottom = 95.0
grow_horizontal = 0
scale = Vector2(0.79, 0.79)
focus_mode = 0
toggle_mode = true
shortcut = SubResource("Shortcut_8p5o4")
icon = ExtResource("11_esjel")
script = ExtResource("12_073mb")
[node name="SettingsHolder" type="Control" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_top = -294.0
offset_bottom = -294.0
grow_horizontal = 2
grow_vertical = 2
[node name="SettingsPopup" type="Control" parent="SettingsHolder"]
visible = false
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -295.5
offset_right = 295.5
offset_bottom = 501.0
grow_horizontal = 2
[node name="ColorRect" type="ColorRect" parent="SettingsHolder/SettingsPopup"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.14902, 0.14902, 0.14902, 1)
metadata/_edit_use_anchors_ = true
[node name="SettingsMenuChild" parent="SettingsHolder/SettingsPopup" instance=ExtResource("13_7atry")]
layout_mode = 1
offset_left = -280.0
offset_top = 8.0
offset_right = 296.0
offset_bottom = 501.0
[node name="WavDisclaimer" type="AcceptDialog" parent="."]
transparent_bg = true
title = "WAV disclaimer"
@@ -942,13 +855,10 @@ offset_top = -40.0
grow_horizontal = 0
grow_vertical = 0
script = ExtResource("30_byc5i")
errorColor = Color(0.981984, 0, 0.065929, 1)
[node name="HTTPRequest" type="HTTPRequest" parent="UpdateChecker"]
timeout = 5.0
[node name="DownloadRequest" type="HTTPRequest" parent="UpdateChecker"]
[node name="ColorRect" type="ColorRect" parent="UpdateChecker"]
layout_mode = 0
offset_left = -214.0
@@ -957,7 +867,7 @@ offset_right = -24.0
offset_bottom = -44.0
color = Color(0.14902, 0.14902, 0.14902, 1)
[node name="UpdateAvailableText" type="Label" parent="UpdateChecker/ColorRect"]
[node name="Label" type="Label" parent="UpdateChecker/ColorRect"]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
@@ -967,8 +877,6 @@ offset_right = 68.0
offset_bottom = 23.0
grow_horizontal = 2
text = "Update Available!"
horizontal_alignment = 1
vertical_alignment = 1
[node name="PatchNotesButton" type="Button" parent="UpdateChecker/ColorRect"]
z_index = 4
@@ -1035,107 +943,20 @@ pivot_offset = Vector2(72, 0)
icon = ExtResource("14_mioc4")
flat = true
[node name="UpdatingNotification" type="Control" parent="."]
visible = false
custom_minimum_size = Vector2(400, 200)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -20.0
offset_top = -20.0
offset_right = 20.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
[node name="ColorRect" type="ColorRect" parent="UpdatingNotification"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.262745, 0.462745, 0.505882, 1)
[node name="ColorRect2" type="ColorRect" parent="UpdatingNotification"]
layout_mode = 1
anchors_preset = -1
anchor_right = 1.0
anchor_bottom = 0.245
grow_horizontal = 2
color = Color(0.196078, 0.278431, 0.32549, 1)
[node name="Label" type="Label" parent="UpdatingNotification"]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -20.0
offset_right = 20.0
offset_bottom = 23.0
grow_horizontal = 2
text = "Simplaudio is Updating!"
label_settings = SubResource("LabelSettings_b1152")
horizontal_alignment = 1
vertical_alignment = 1
[node name="Label2" type="Label" parent="UpdatingNotification"]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -142.0
offset_top = 52.0
offset_right = 142.0
offset_bottom = 153.0
grow_horizontal = 2
text = "Please wait.
Simplaudio will restart automatically
this wont take long"
horizontal_alignment = 1
[node name="LoadingIMG" type="Sprite2D" parent="UpdatingNotification"]
position = Vector2(199, 115)
rotation = 1.5708
scale = Vector2(-0.5, 0.5)
texture = ExtResource("13_de5ej")
script = ExtResource("14_rhw4k")
[node name="Error" type="Label" parent="UpdatingNotification"]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -20.0
offset_top = 57.0
offset_right = 20.0
offset_bottom = 80.0
grow_horizontal = 2
grow_vertical = 2
label_settings = SubResource("LabelSettings_ivhc6")
horizontal_alignment = 1
[connection signal="toggled" from="SelectPlaylist" to="SelectPlaylist" method="_on_toggled"]
[connection signal="pressed" from="PlaylistPanelHolder/PlaylistsPanel/PlaylistsContainer/VBoxContainer/HBoxContainer/CreatePlaylist" to="PlaylistPanelHolder/PlaylistsPanel" method="_on_create_playlist_pressed"]
[connection signal="toggled" from="PlaylistPanelHolder/PlaylistsPanel/PlaylistsContainer/VBoxContainer/HBoxContainer/PlayAll" to="PlaylistPanelHolder/PlaylistsPanel" method="_on_play_all_toggled"]
[connection signal="toggled" from="YtTabButton" to="YtTabButton" method="_on_toggled"]
[connection signal="pressed" from="PlaylistsPanel/PlaylistsContainer/VBoxContainer/HBoxContainer/CreatePlaylist" to="PlaylistsPanel" method="_on_create_playlist_pressed"]
[connection signal="toggled" from="PlaylistsPanel/PlaylistsContainer/VBoxContainer/HBoxContainer/PlayAll" to="PlaylistsPanel" method="_on_play_all_toggled"]
[connection signal="dir_selected" from="CreatePlaylistsMenu/FileDialog" to="CreatePlaylistsMenu" method="_on_file_dialog_dir_selected"]
[connection signal="text_changed" from="CreatePlaylistsMenu/ScrollContainer/VBoxContainer/PlaylistName" to="CreatePlaylistsMenu" method="_on_playlist_name_text_changed"]
[connection signal="pressed" from="CreatePlaylistsMenu/ScrollContainer/VBoxContainer/SelectDirButton" to="CreatePlaylistsMenu" method="_on_select_dir_button_pressed"]
[connection signal="pressed" from="CreatePlaylistsMenu/ScrollContainer/VBoxContainer/CreatePlaylistButton" to="CreatePlaylistsMenu" method="_on_create_playlist_button_pressed"]
[connection signal="pressed" from="CreatePlaylistsMenu/CloseButton" to="CreatePlaylistsMenu" method="_on_close_button_pressed"]
[connection signal="pressed" from="SettingsButton" to="SettingsButton" method="_on_pressed"]
[connection signal="toggled" from="SearchToggle" to="SearchToggle" method="_on_toggled"]
[connection signal="text_submitted" from="SearchBar" to="SearchBar" method="_on_text_submitted"]
[connection signal="index_pressed" from="SearchResults" to="SearchBar" method="_on_search_results_index_pressed"]
[connection signal="toggled" from="VolumeButton" to="VolumeButton" method="_on_toggled"]
[connection signal="toggled" from="SettingsButton" to="SettingsButton" method="_on_toggled"]
[connection signal="toggled" from="YtTabButton" to="YtTabButton" method="_on_toggled"]
[connection signal="request_completed" from="UpdateChecker/HTTPRequest" to="UpdateChecker" method="_on_http_request_completed"]
[connection signal="request_completed" from="UpdateChecker/DownloadRequest" to="UpdateChecker" method="_on_download_request_completed"]
[connection signal="pressed" from="UpdateChecker/ColorRect/LinkButton" to="UpdateChecker" method="_on_link_button_pressed"]
[connection signal="pressed" from="UpdateChecker/ColorRect/CloseBuen" to="UpdateChecker" method="_on_close_buen_pressed"]
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

@@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bmbxyma4ra46p"
path="res://.godot/imported/Download.png-3a4ebaeb081d510c32ff24ab28484d7b.ctex"
uid="uid://bdpat2sfflaxq"
path="res://.godot/imported/Youtube_logo.png-22e44a6c4c4bd7a2da4492032ea62686.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Download.png"
dest_files=["res://.godot/imported/Download.png-3a4ebaeb081d510c32ff24ab28484d7b.ctex"]
source_file="res://Youtube_logo.png"
dest_files=["res://.godot/imported/Youtube_logo.png-22e44a6c4c4bd7a2da4492032ea62686.ctex"]
[params]
+2 -2
View File
@@ -9,7 +9,7 @@ Button/styles/focus = SubResource("StyleBoxEmpty_1t7mm")
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_5vqdt"]
[sub_resource type="Image" id="Image_qsij4"]
[sub_resource type="Image" id="Image_x7sdv"]
data = {
"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 36, 224, 224, 224, 168, 224, 224, 224, 233, 224, 224, 224, 236, 224, 224, 224, 170, 231, 231, 231, 31, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 36, 224, 224, 224, 234, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 239, 230, 230, 230, 30, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 168, 224, 224, 224, 255, 224, 224, 224, 186, 224, 224, 224, 32, 224, 224, 224, 33, 224, 224, 224, 187, 224, 224, 224, 255, 225, 225, 225, 167, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 237, 224, 224, 224, 255, 224, 224, 224, 33, 255, 255, 255, 0, 255, 255, 255, 0, 227, 227, 227, 36, 224, 224, 224, 255, 224, 224, 224, 234, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 237, 224, 224, 224, 255, 224, 224, 224, 33, 255, 255, 255, 0, 255, 255, 255, 0, 229, 229, 229, 38, 224, 224, 224, 255, 224, 224, 224, 229, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 164, 224, 224, 224, 255, 224, 224, 224, 187, 225, 225, 225, 34, 227, 227, 227, 36, 224, 224, 224, 192, 224, 224, 224, 255, 224, 224, 224, 162, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 24, 225, 225, 225, 215, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 229, 224, 224, 224, 32, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 24, 224, 224, 224, 216, 224, 224, 224, 255, 224, 224, 224, 210, 224, 224, 224, 161, 224, 224, 224, 232, 224, 224, 224, 231, 225, 225, 225, 159, 230, 230, 230, 30, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 107, 224, 224, 224, 255, 224, 224, 224, 210, 230, 230, 230, 20, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 105, 230, 230, 230, 20, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 221, 224, 224, 224, 130, 255, 255, 255, 1, 255, 255, 255, 1, 225, 225, 225, 134, 224, 224, 224, 224, 225, 225, 225, 223, 224, 224, 224, 132, 255, 255, 255, 1, 255, 255, 255, 6, 224, 224, 224, 137, 224, 224, 224, 231, 224, 224, 224, 255, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 130, 225, 225, 225, 133, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 129, 224, 224, 224, 137, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 65, 224, 224, 224, 255, 224, 224, 224, 220, 225, 225, 225, 223, 224, 224, 224, 255, 226, 226, 226, 61, 224, 224, 224, 65, 224, 224, 224, 255, 224, 224, 224, 222, 224, 224, 224, 231, 224, 224, 224, 255, 227, 227, 227, 62, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 67, 224, 224, 224, 255, 224, 224, 224, 219, 224, 224, 224, 222, 224, 224, 224, 255, 227, 227, 227, 63, 225, 225, 225, 67, 224, 224, 224, 255, 224, 224, 224, 219, 224, 224, 224, 230, 224, 224, 224, 255, 227, 227, 227, 63, 255, 255, 255, 0, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 127, 224, 224, 224, 129, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 225, 225, 225, 126, 225, 225, 225, 135, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 255, 255, 255, 255, 0, 224, 224, 224, 255, 224, 224, 224, 255, 224, 224, 224, 221, 225, 225, 225, 127, 255, 255, 255, 0, 255, 255, 255, 1, 224, 224, 224, 128, 224, 224, 224, 220, 224, 224, 224, 219, 225, 225, 225, 127, 255, 255, 255, 0, 255, 255, 255, 5, 225, 225, 225, 134, 224, 224, 224, 229, 224, 224, 224, 255, 255, 255, 255, 0),
"format": "RGBA8",
@@ -19,7 +19,7 @@ data = {
}
[sub_resource type="ImageTexture" id="ImageTexture_gdtpn"]
image = SubResource("Image_qsij4")
image = SubResource("Image_x7sdv")
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_7v0rg"]
+18 -51
View File
@@ -36,22 +36,13 @@ func download(url: String) -> Download:
func FilesMissing() -> bool:
var executable_name: String = "yt-dlp.exe" if OS.get_name() == "Windows" else "yt-dlp"
if OS.get_name() == "Windows":
if not FileAccess.file_exists("user://%s" % executable_name):
return true
if not FileAccess.file_exists("user://ffmpeg.exe"):
return true
if not FileAccess.file_exists("user://ffprobe.exe"):
return true
elif OS.get_name() == "Linux":
var stuff = OS.execute("bash",PackedStringArray(["-c","ffprobe"]))
print(stuff)
if stuff != 1:
return true
var stuff2 = OS.execute("bash",PackedStringArray(["-c","ffmpeg"]))
print(stuff2)
if stuff2 != 1:
return true
if not FileAccess.file_exists("user://%s" % executable_name):
return true
if not FileAccess.file_exists("user://ffmpeg.exe"):
return true
if not FileAccess.file_exists("user://ffprobe.exe"):
return true
return false
func setup() -> void:
@@ -68,8 +59,9 @@ func setup() -> void:
await (Engine.get_main_loop() as SceneTree).process_frame
_thread.wait_to_finish()
await _setup_ffmpeg()
if OS.get_name() == "Linux":
if OS.get_name() == "Windows":
await _setup_ffmpeg()
else:
OS.execute("chmod", PackedStringArray(["+x", OS.get_user_data_dir() + "/yt-dlp"]))
_is_setup = true
@@ -78,33 +70,12 @@ func setup() -> void:
func _setup_ffmpeg() -> void:
if not FileAccess.file_exists("user://ffmpeg.exe"):
if OS.get_name() == "Windows":
_downloader.download(ffmpeg_sources["ffmpeg"], "user://ffmpeg.exe")
await _downloader.download_completed
print(OS.get_distribution_name())
elif OS.get_distribution_name() in ["Ubuntu","Linux Mint","Debian"]:
var stuff = OS.execute("bash",PackedStringArray(["-c","ffmpeg"]))
print(stuff)
if stuff !=1:
push_error("FFMPEG NOT INSTALLED")
print(OS.get_distribution_name())
else:
print(OS.get_distribution_name())
_downloader.download(ffmpeg_sources["ffmpeg"], "user://ffmpeg.exe")
await _downloader.download_completed
if not FileAccess.file_exists("user://ffprobe.exe"):
if OS.get_name() == "Windows":
_downloader.download(ffmpeg_sources["ffprobe"], "user://ffprobe.exe")
print(OS.get_distribution_name())
await _downloader.download_completed
elif OS.get_name() == "Linux":
var stuff = OS.execute("bash",PackedStringArray(["-c","ffprobe"]))
print(stuff)
if stuff != 1:
push_error("FFPROBE NOT INSTALLED")
print(OS.get_distribution_name())
else:
print(OS.get_distribution_name())
_downloader.download(ffmpeg_sources["ffprobe"], "user://ffprobe.exe")
await _downloader.download_completed
func _update_yt_dlp(filename: String) -> void:
@@ -138,7 +109,7 @@ class Download extends RefCounted:
var _renameAudioToDiffName:bool = false
var _video_format: Video = Video.WEBM
var _audio_format: Audio = Audio.MP3
var _download_playlist:bool
func _init(url: String):
_url = url
@@ -212,17 +183,13 @@ class Download extends RefCounted:
"destination": _destination
})
options_and_arguments.append_array(["--embed-metadata","--embed-thumbnail",str("-o" + "%(title)s.%(ext)s")])
options_and_arguments.append_array(["--yes-playlist","--embed-metadata","--embed-thumbnail",str("-o" + "%(title)s.%(ext)s")])
options_and_arguments.append_array(["--no-continue", "-P", file_path, _url])
if _download_playlist:
options_and_arguments.append("--yes-playlist")
else:
options_and_arguments.append("--no-playlist")
print(options_and_arguments)
var output: Array = []
OS.execute(executable, PackedStringArray(options_and_arguments), output)
print(options_and_arguments)
self._thread_finished.call_deferred()
+1 -1
View File
@@ -4,7 +4,7 @@ extends Control
@onready var file_dialog: FileDialog = $FileDialog
@onready var current_directory: Label = $ScrollContainer/VBoxContainer/CurrentDirectory
@onready var playlist_name: LineEdit = $ScrollContainer/VBoxContainer/PlaylistName
@onready var playlists_holder: VBoxContainer = $"../PlaylistPanelHolder/PlaylistsPanel/PlaylistsContainer/VBoxContainer/PlaylistsHolder"
@onready var playlists_holder: VBoxContainer = $"../PlaylistsPanel/PlaylistsContainer/VBoxContainer/PlaylistsHolder"
const PLAYLIST_DISPLAY = preload("res://PlaylistDisplay.tscn")
+223 -13
View File
@@ -9,7 +9,7 @@ custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../Exports/Windows/Simplaudio.exe"
export_path="../MusicPlayerExports/MusicPlayer.exe"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
@@ -68,8 +68,8 @@ dotnet/embed_build_outputs=false
[preset.1]
name="Linux"
platform="Linux"
name="macOS"
platform="macOS"
runnable=true
advanced_options=false
dedicated_server=false
@@ -77,7 +77,7 @@ custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="../Exports/Linux/Simplaudio.x86_64"
export_path="../MusicPlayerMACExports/MusicPlayer.zip"
encryption_include_filters=""
encryption_exclude_filters=""
encrypt_pck=false
@@ -86,25 +86,235 @@ script_export_mode=2
[preset.1.options]
export/distribution_type=1
binary_format/architecture="universal"
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=1
binary_format/embed_pck=false
texture_format/s3tc_bptc=true
texture_format/etc2_astc=false
binary_format/architecture="x86_64"
debug/export_console_wrapper=2
application/icon=""
application/icon_interpolation=4
application/bundle_identifier="com.bucket.simplaudio"
application/signature=""
application/app_category="Music"
application/short_version=""
application/version=""
application/copyright=""
application/copyright_localized={}
application/min_macos_version="10.12"
application/export_angle=0
display/high_res=true
application/additional_plist_content=""
xcode/platform_build="14C18"
xcode/sdk_version="13.1"
xcode/sdk_build="22C55"
xcode/sdk_name="macosx13.1"
xcode/xcode_version="1420"
xcode/xcode_build="14C18"
codesign/codesign=1
codesign/installer_identity=""
codesign/apple_team_id=""
codesign/identity=""
codesign/entitlements/custom_file=""
codesign/entitlements/allow_jit_code_execution=false
codesign/entitlements/allow_unsigned_executable_memory=false
codesign/entitlements/allow_dyld_environment_variables=false
codesign/entitlements/disable_library_validation=false
codesign/entitlements/audio_input=false
codesign/entitlements/camera=false
codesign/entitlements/location=false
codesign/entitlements/address_book=false
codesign/entitlements/calendars=false
codesign/entitlements/photos_library=false
codesign/entitlements/apple_events=false
codesign/entitlements/debugging=false
codesign/entitlements/app_sandbox/enabled=false
codesign/entitlements/app_sandbox/network_server=false
codesign/entitlements/app_sandbox/network_client=false
codesign/entitlements/app_sandbox/device_usb=false
codesign/entitlements/app_sandbox/device_bluetooth=false
codesign/entitlements/app_sandbox/files_downloads=0
codesign/entitlements/app_sandbox/files_pictures=0
codesign/entitlements/app_sandbox/files_music=0
codesign/entitlements/app_sandbox/files_movies=0
codesign/entitlements/app_sandbox/files_user_selected=0
codesign/entitlements/app_sandbox/helper_executables=[]
codesign/custom_options=PackedStringArray()
notarization/notarization=0
privacy/microphone_usage_description=""
privacy/microphone_usage_description_localized={}
privacy/camera_usage_description=""
privacy/camera_usage_description_localized={}
privacy/location_usage_description=""
privacy/location_usage_description_localized={}
privacy/address_book_usage_description=""
privacy/address_book_usage_description_localized={}
privacy/calendar_usage_description=""
privacy/calendar_usage_description_localized={}
privacy/photos_library_usage_description=""
privacy/photos_library_usage_description_localized={}
privacy/desktop_folder_usage_description=""
privacy/desktop_folder_usage_description_localized={}
privacy/documents_folder_usage_description=""
privacy/documents_folder_usage_description_localized={}
privacy/downloads_folder_usage_description=""
privacy/downloads_folder_usage_description_localized={}
privacy/network_volumes_usage_description=""
privacy/network_volumes_usage_description_localized={}
privacy/removable_volumes_usage_description=""
privacy/removable_volumes_usage_description_localized={}
privacy/tracking_enabled=false
privacy/tracking_domains=PackedStringArray()
privacy/collected_data/name/collected=false
privacy/collected_data/name/linked_to_user=false
privacy/collected_data/name/used_for_tracking=false
privacy/collected_data/name/collection_purposes=0
privacy/collected_data/email_address/collected=false
privacy/collected_data/email_address/linked_to_user=false
privacy/collected_data/email_address/used_for_tracking=false
privacy/collected_data/email_address/collection_purposes=0
privacy/collected_data/phone_number/collected=false
privacy/collected_data/phone_number/linked_to_user=false
privacy/collected_data/phone_number/used_for_tracking=false
privacy/collected_data/phone_number/collection_purposes=0
privacy/collected_data/physical_address/collected=false
privacy/collected_data/physical_address/linked_to_user=false
privacy/collected_data/physical_address/used_for_tracking=false
privacy/collected_data/physical_address/collection_purposes=0
privacy/collected_data/other_contact_info/collected=false
privacy/collected_data/other_contact_info/linked_to_user=false
privacy/collected_data/other_contact_info/used_for_tracking=false
privacy/collected_data/other_contact_info/collection_purposes=0
privacy/collected_data/health/collected=false
privacy/collected_data/health/linked_to_user=false
privacy/collected_data/health/used_for_tracking=false
privacy/collected_data/health/collection_purposes=0
privacy/collected_data/fitness/collected=false
privacy/collected_data/fitness/linked_to_user=false
privacy/collected_data/fitness/used_for_tracking=false
privacy/collected_data/fitness/collection_purposes=0
privacy/collected_data/payment_info/collected=false
privacy/collected_data/payment_info/linked_to_user=false
privacy/collected_data/payment_info/used_for_tracking=false
privacy/collected_data/payment_info/collection_purposes=0
privacy/collected_data/credit_info/collected=false
privacy/collected_data/credit_info/linked_to_user=false
privacy/collected_data/credit_info/used_for_tracking=false
privacy/collected_data/credit_info/collection_purposes=0
privacy/collected_data/other_financial_info/collected=false
privacy/collected_data/other_financial_info/linked_to_user=false
privacy/collected_data/other_financial_info/used_for_tracking=false
privacy/collected_data/other_financial_info/collection_purposes=0
privacy/collected_data/precise_location/collected=false
privacy/collected_data/precise_location/linked_to_user=false
privacy/collected_data/precise_location/used_for_tracking=false
privacy/collected_data/precise_location/collection_purposes=0
privacy/collected_data/coarse_location/collected=false
privacy/collected_data/coarse_location/linked_to_user=false
privacy/collected_data/coarse_location/used_for_tracking=false
privacy/collected_data/coarse_location/collection_purposes=0
privacy/collected_data/sensitive_info/collected=false
privacy/collected_data/sensitive_info/linked_to_user=false
privacy/collected_data/sensitive_info/used_for_tracking=false
privacy/collected_data/sensitive_info/collection_purposes=0
privacy/collected_data/contacts/collected=false
privacy/collected_data/contacts/linked_to_user=false
privacy/collected_data/contacts/used_for_tracking=false
privacy/collected_data/contacts/collection_purposes=0
privacy/collected_data/emails_or_text_messages/collected=false
privacy/collected_data/emails_or_text_messages/linked_to_user=false
privacy/collected_data/emails_or_text_messages/used_for_tracking=false
privacy/collected_data/emails_or_text_messages/collection_purposes=0
privacy/collected_data/photos_or_videos/collected=false
privacy/collected_data/photos_or_videos/linked_to_user=false
privacy/collected_data/photos_or_videos/used_for_tracking=false
privacy/collected_data/photos_or_videos/collection_purposes=0
privacy/collected_data/audio_data/collected=false
privacy/collected_data/audio_data/linked_to_user=false
privacy/collected_data/audio_data/used_for_tracking=false
privacy/collected_data/audio_data/collection_purposes=0
privacy/collected_data/gameplay_content/collected=false
privacy/collected_data/gameplay_content/linked_to_user=false
privacy/collected_data/gameplay_content/used_for_tracking=false
privacy/collected_data/gameplay_content/collection_purposes=0
privacy/collected_data/customer_support/collected=false
privacy/collected_data/customer_support/linked_to_user=false
privacy/collected_data/customer_support/used_for_tracking=false
privacy/collected_data/customer_support/collection_purposes=0
privacy/collected_data/other_user_content/collected=false
privacy/collected_data/other_user_content/linked_to_user=false
privacy/collected_data/other_user_content/used_for_tracking=false
privacy/collected_data/other_user_content/collection_purposes=0
privacy/collected_data/browsing_history/collected=false
privacy/collected_data/browsing_history/linked_to_user=false
privacy/collected_data/browsing_history/used_for_tracking=false
privacy/collected_data/browsing_history/collection_purposes=0
privacy/collected_data/search_hhistory/collected=false
privacy/collected_data/search_hhistory/linked_to_user=false
privacy/collected_data/search_hhistory/used_for_tracking=false
privacy/collected_data/search_hhistory/collection_purposes=0
privacy/collected_data/user_id/collected=false
privacy/collected_data/user_id/linked_to_user=false
privacy/collected_data/user_id/used_for_tracking=false
privacy/collected_data/user_id/collection_purposes=0
privacy/collected_data/device_id/collected=false
privacy/collected_data/device_id/linked_to_user=false
privacy/collected_data/device_id/used_for_tracking=false
privacy/collected_data/device_id/collection_purposes=0
privacy/collected_data/purchase_history/collected=false
privacy/collected_data/purchase_history/linked_to_user=false
privacy/collected_data/purchase_history/used_for_tracking=false
privacy/collected_data/purchase_history/collection_purposes=0
privacy/collected_data/product_interaction/collected=false
privacy/collected_data/product_interaction/linked_to_user=false
privacy/collected_data/product_interaction/used_for_tracking=false
privacy/collected_data/product_interaction/collection_purposes=0
privacy/collected_data/advertising_data/collected=false
privacy/collected_data/advertising_data/linked_to_user=false
privacy/collected_data/advertising_data/used_for_tracking=false
privacy/collected_data/advertising_data/collection_purposes=0
privacy/collected_data/other_usage_data/collected=false
privacy/collected_data/other_usage_data/linked_to_user=false
privacy/collected_data/other_usage_data/used_for_tracking=false
privacy/collected_data/other_usage_data/collection_purposes=0
privacy/collected_data/crash_data/collected=false
privacy/collected_data/crash_data/linked_to_user=false
privacy/collected_data/crash_data/used_for_tracking=false
privacy/collected_data/crash_data/collection_purposes=0
privacy/collected_data/performance_data/collected=false
privacy/collected_data/performance_data/linked_to_user=false
privacy/collected_data/performance_data/used_for_tracking=false
privacy/collected_data/performance_data/collection_purposes=0
privacy/collected_data/other_diagnostic_data/collected=false
privacy/collected_data/other_diagnostic_data/linked_to_user=false
privacy/collected_data/other_diagnostic_data/used_for_tracking=false
privacy/collected_data/other_diagnostic_data/collection_purposes=0
privacy/collected_data/environment_scanning/collected=false
privacy/collected_data/environment_scanning/linked_to_user=false
privacy/collected_data/environment_scanning/used_for_tracking=false
privacy/collected_data/environment_scanning/collection_purposes=0
privacy/collected_data/hands/collected=false
privacy/collected_data/hands/linked_to_user=false
privacy/collected_data/hands/used_for_tracking=false
privacy/collected_data/hands/collection_purposes=0
privacy/collected_data/head/collected=false
privacy/collected_data/head/linked_to_user=false
privacy/collected_data/head/used_for_tracking=false
privacy/collected_data/head/collection_purposes=0
privacy/collected_data/other_data_types/collected=false
privacy/collected_data/other_data_types/linked_to_user=false
privacy/collected_data/other_data_types/used_for_tracking=false
privacy/collected_data/other_data_types/collection_purposes=0
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
ssh_remote_deploy/port="22"
ssh_remote_deploy/extra_args_ssh=""
ssh_remote_deploy/extra_args_scp=""
ssh_remote_deploy/run_script="#!/usr/bin/env bash
export DISPLAY=:0
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
\"{temp_dir}/{exe_name}\" {cmd_args}"
open \"{temp_dir}/{exe_name}.app\" --args {cmd_args}"
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
kill $(pgrep -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\")
rm -rf \"{temp_dir}\""
dotnet/include_scripts_content=false
dotnet/include_debug_symbols=true
dotnet/include_debug_symbols=false
dotnet/embed_build_outputs=false
-15
View File
@@ -1,15 +0,0 @@
extends Button
@export var Open:String
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
func _pressed() -> void:
OS.shell_open(Open)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
+30 -42
View File
@@ -21,11 +21,13 @@ extends Control
@onready var songs_menu: MenuButton = $SongsMenu
@onready var version: Label = $Version
@onready var paused_indicator: TextureRect = $PausedIndicator
@onready var settings_menu_child: Settings = $SettingsHolder/SettingsPopup/SettingsMenuChild
@onready var settings_popup: Popup = $SettingsPopup
@onready var settings_menu_child: Settings = $SettingsPopup/SettingsMenuChild
@onready var artist_name: Label = $ArtistName
@onready var user_bg: TextureRect = $UserBG
@onready var playlists_holder: VBoxContainer = $PlaylistPanelHolder/PlaylistsPanel/PlaylistsContainer/VBoxContainer/PlaylistsHolder
@onready var play_all: Button = $PlaylistPanelHolder/PlaylistsPanel/PlaylistsContainer/VBoxContainer/HBoxContainer/PlayAll
@onready var playlists_panel: Control = $PlaylistsPanel
@onready var playlists_holder: VBoxContainer = $PlaylistsPanel/PlaylistsContainer/VBoxContainer/PlaylistsHolder
@onready var play_all: Button = $PlaylistsPanel/PlaylistsContainer/VBoxContainer/HBoxContainer/PlayAll
@onready var album_name: Label = $Album
@onready var playlist_or_song: ConfirmationDialog = $PlaylistOrSong
@@ -65,7 +67,6 @@ var PlayAllLists:bool
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
get_tree().root.min_size = Vector2(850,492)
current_progress.drag_ended.connect(SongDragStopped)
current_progress.drag_started.connect(SongDragStarted)
loop.pressed.connect(LoopSong)
@@ -413,24 +414,40 @@ func _process(_delta: float) -> void:
SaveEverything()
print("yoo")
@warning_ignore("integer_division")
UpdateSplashes()
if DiscordRPC.get_is_discord_working():
print(DiscordRPC.get_current_user()["username"])
SplashStrings = ["Total listening time: %s!" % str(str(int(TimeSpentListening/60)/60 )
+ "h : " + str((int(TimeSpentListening) / 60) % 60) + "m : " +
str(int(TimeSpentListening) % 60) + "s"),
"Version: %s" % version.text,"🤷‍♂️","This Changes every ~11 seconds",
"hello everybody my name is %s" % DiscordRPC.get_current_user()["username"],
"wash your dishes, i know you got some","Running on %s" % OS.get_distribution_name(),
"%s is cooking" % DiscordRPC.get_current_user()["username"], "debugging" if OS.has_feature("editor") else "Release build",
"this user chose to show you all this info","Playing a Banger",
":steamhappy:","This is a sign that crocodiles live in water",
"Space? SPACE?! SPAAAAAAAAAAAAACE!!!",
"i love gd colonge",
"listening with reverb" if settings_menu_child.reverb_check.button_pressed else
"not listening with reverb","the cake is edible",
"what a great song!","this message is useless",
"stop reading these","why are you reading these",
"hello from mars", "hello to mars","there is a fly in my room",
"yippee!","What, are they allergic to bathtubs or something"]
print(DiscordRPC.get_current_user()["username"])
print(TimeSpentListening)
var LText = SplashStrings.pick_random()
DiscordRPC.large_image_text = LText
if DiscordRPC.get_is_discord_working():
DiscordRPC.refresh()
DiscordRPC.refresh()
# "59:59 remaining" timestamp for the activity
if music_player.playing:
TimeSpentListening += _delta
DiscordRPC.state = "Listening To Music"
if DiscordRPC.get_current_user().get("username") == "_bucketofchicken":
DiscordRPC.state = "i made the music player btw"
else:
DiscordRPC.state = "Listening To Music"
CurrentPausedIndicatorShaderIntensity = lerp(CurrentPausedIndicatorShaderIntensity,0.0,0.1)
else:
DiscordRPC.start_timestamp = int(0)
DiscordRPC.state = "Paused"
if DiscordRPC.get_is_discord_working():
DiscordRPC.refresh()
DiscordRPC.refresh()
CurrentPausedIndicatorShaderIntensity = lerp(CurrentPausedIndicatorShaderIntensity,1.0,0.1)
if DiscordRichPresenceEnabled:
DiscordRPC.run_callbacks()
@@ -469,31 +486,7 @@ func _process(_delta: float) -> void:
DiscordRPC.refresh()
func UpdateSplashes():
if DiscordRPC.get_is_discord_working():
SplashStrings = ["Total listening time: %s!" % str(str(int(TimeSpentListening/60)/60 )
+ "h : " + str((int(TimeSpentListening) / 60) % 60) + "m : " +
str(int(TimeSpentListening) % 60) + "s"),
"Version: %s" % version.text,"🤷‍♂️","This Changes every ~11 seconds",
"hello everybody my name is %s" % DiscordRPC.get_current_user()["username"],
"wash your dishes, i know you got some","Running on %s" % OS.get_distribution_name(),
"%s is cooking" % DiscordRPC.get_current_user()["username"], "debugging" if OS.has_feature("editor") else "Release build",
"this user chose to show you all this info","Playing a Banger",
":steamhappy:","This is a sign that crocodiles live in water",
"Space? SPACE?! SPAAAAAAAAAAAAACE!!!",
"i love gd colonge",
"listening with reverb" if settings_menu_child.reverb_check.button_pressed else
"not listening with reverb","the cake is edible",
"what a great song!","this message is useless",
"stop reading these","why are you reading these",
"hello from mars", "hello to mars","there is a fly in my room",
"yippee!","What, are they allergic to bathtubs or something",
"Did you know, a 737 can land with up to 33knots of wind!",
"Welcome to todays JahresSchau",
"ram is very useful","your cpu is tasty","main course: Nvidia GPU",
"SCHOTTLAND FUER IMMER","i eat airborne vehicles","linus trovalds",
"","\(〇_o)/","Nuh Uh!","Yuh Huh","Breaching.",
"I get a narcissistic injury when the wall ignores me","totally not using %s" % version.text]
func SaveEverything():
@@ -537,7 +530,6 @@ func saveUserdata(content):
var file = FileAccess.open("user://data.dat", FileAccess.WRITE)
@warning_ignore("static_called_on_instance")
file.store_string(Marshalls.utf8_to_base64(json.stringify(content)))
file.close()
func loadUserdata():
var json = JSON.new()
@@ -550,10 +542,8 @@ func loadUserdata():
else:
@warning_ignore("static_called_on_instance")
content = json.parse_string(Marshalls.base64_to_utf8(file.get_as_text()))
file.close()
return content
else:
file.close()
return null
func loadPlaylists():
@@ -570,5 +560,3 @@ func loadPlaylists():
print(PlaylistsLocation)
print(Playlists.keys())
print("Playlists")
file.close()
file2.close()
+1 -1
View File
@@ -1,6 +1,6 @@
extends Control
@onready var create_playlist: Button = $PlaylistsContainer/VBoxContainer/HBoxContainer/CreatePlaylist
@onready var create_playlists_menu: Control = $"../../CreatePlaylistsMenu"
@onready var create_playlists_menu: Control = $"../CreatePlaylistsMenu"
@onready var play_all: Button = $PlaylistsContainer/VBoxContainer/HBoxContainer/PlayAll
+1 -1
View File
@@ -16,7 +16,6 @@ config/features=PackedStringArray("4.3", "Forward Plus")
run/low_processor_mode=true
boot_splash/bg_color=Color(0, 0, 0, 1)
boot_splash/image="res://BigLogo.png"
boot_splash/use_filter=false
config/icon="res://Logo2.png"
config/windows_native_icon="res://addons/godot-yt-dlp/src/favicon2.ico"
@@ -30,6 +29,7 @@ MusicMetadataAutoload="*res://MusicMeta-f98d7384de3e2e658dcba3f5b06fb5b57ac2c73c
window/size/initial_position_type=3
window/size/extend_to_title=true
window/energy_saving/keep_screen_on=false
window/stretch/mode="viewport"
window/stretch/aspect="expand"
[dotnet]
+4 -17
View File
@@ -1,23 +1,10 @@
extends Button
@onready var playlists_panel: Control = $"../PlaylistPanelHolder/PlaylistsPanel"
var currentlyExtending:bool
var Target:float = 50
@onready var playlists_panel: Control = $"../PlaylistsPanel"
func _process(delta: float) -> void:
if currentlyExtending:
playlists_panel.position.x = clamp(lerp(playlists_panel.position.x,Target,0.25),0,100)
else:
playlists_panel.position.x -=1
playlists_panel.position.x = clamp(lerp(Target,playlists_panel.position.x,1.25),0,100)
playlists_panel.modulate.a = playlists_panel.position.x / Target
if playlists_panel.position.x > 1:
playlists_panel.show()
else:
playlists_panel.hide()
func _on_toggled(toggled_on: bool) -> void:
if toggled_on:
currentlyExtending = true
playlists_panel.position.x = 1
playlists_panel.show()
else:
currentlyExtending = false
playlists_panel.hide()
+1 -1
View File
@@ -74,7 +74,7 @@ func _on_h_slider_drag_ended(value_changed: bool) -> void:
Parent.SaveEverything()
func _on_exit_pressed() -> void:
Parent.find_child("SettingsButton").button_pressed = false
get_parent().hide()
Parent.SaveEverything()
#region Reverb
+11 -20
View File
@@ -1,25 +1,16 @@
extends Button
@onready var settings_popup: Control = $"../SettingsHolder/SettingsPopup"
var currentlyExtending:bool
var Target:float = 50
@onready var settings_popup: Popup = $"../SettingsPopup"
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
if currentlyExtending:
settings_popup.position.y = clamp(lerp(settings_popup.position.y,Target,0.25),0,100)
else:
settings_popup.position.y -=1
settings_popup.position.y = clamp(lerp(Target,settings_popup.position.y,1.25),0,100)
settings_popup.modulate.a = settings_popup.position.y / Target
if settings_popup.position.y > 1:
settings_popup.show()
else:
settings_popup.hide()
pass
func _on_toggled(toggled_on: bool) -> void:
print("@@")
if toggled_on:
currentlyExtending = true
settings_popup.position.y = 1
else:
currentlyExtending = false
func _on_pressed() -> void:
settings_popup.show()
+9 -76
View File
@@ -1,25 +1,22 @@
extends Control
@onready var Parent:MainScene = get_tree().root.get_child(2)
@onready var animation_player := $AnimationPlayer as AnimationPlayer
@onready var version: Label = $"../Version"
@onready var update_button := $Update as Button
@onready var http_request := $HTTPRequest as HTTPRequest
@onready var download_request: HTTPRequest = $DownloadRequest
@onready var link_button: Button = $ColorRect/LinkButton
@onready var update_available_text: Label = $ColorRect/UpdateAvailableText
@onready var updating_notification: Control = $"../UpdatingNotification"
@onready var errorLabel: Label = $"../UpdatingNotification/Error"
@onready var updating_bg: ColorRect = $"../UpdatingBG"
@onready var paused_indicator: TextureRect = $"../PausedIndicator"
@export var errorColor:Color
var CheckForUpdates:bool = true
var updateLink:String
# Only update once every UPDATE_THROTTLE seconds at most
# The GitHub releases API only allows 60 unauthenticated requests per hour,
# so this value should be kept relatively high
const UPDATE_THROTTLE = 600
func _ready() -> void:
if CheckForUpdates:
@@ -34,7 +31,6 @@ func check_for_updates() -> void:
if error != OK:
push_error("! a client error occurred")
errorLabel.text = "a client error occurred"
func _on_http_request_completed(result: int, _response_code: int, _headers: PackedStringArray, body: PackedByteArray) -> void:
if result != HTTPRequest.RESULT_SUCCESS:
@@ -46,76 +42,13 @@ func _on_http_request_completed(result: int, _response_code: int, _headers: Pack
var json = JSON.new()
var result2 = json.parse_string(str(body.get_string_from_utf8()))
print("! AHHH " + str(result2))
if result2.has("tag_name"):
if result2["tag_name"] != version.text:
update_available_text.text = result2["tag_name"] + " Is Out!"
show()
updateLink = result2["html_url"]
if result2["tag_name"] != version.text:
show()
updateLink = result2["html_url"]
func _on_close_buen_pressed() -> void:
hide()
func _on_link_button_pressed() -> void:
link_button.disabled = true
link_button.text = "Updating..."
updating_notification.show()
updating_bg.show()
paused_indicator.hide()
var exepath:PackedStringArray = OS.get_executable_path().split("/")
var path:String = GetLocalPath()
print(OS.get_executable_path())
if !OS.has_feature("editor"):
download_request.download_file = path + "download.zip"
var DownloadLink:String
if OS.get_name() == "Windows":
DownloadLink = "https://github.com/notdraimdev/Simplaudio/releases/latest/download/Windows.zip"
elif OS.get_name() == "Linux":
DownloadLink = "https://github.com/notdraimdev/Simplaudio/releases/latest/download/Linux.zip"
if DownloadLink.is_empty() != true:
var error = download_request.request(
DownloadLink
)
if error != OK:
print("! DOWNLOAD ERROR: " + str(error))
errorLabel.text = "DOWNLOAD FAILED ERROR CODE: " + str(error)
errorLabel.label_settings.font_color = errorColor
else:
errorLabel.text = "downloading..."
else:
push_error("OS NOT SUPPORTED, you should not get this error but you did, congrat!")
OS.shell_open(updateLink)
func _on_download_request_completed(result: int, response_code: int, headers: PackedStringArray, body: PackedByteArray) -> void:
if result != HTTPRequest.RESULT_SUCCESS:
print("! Something went wrong server side: " + str(result))
errorLabel.text = "DOWNLOAD FAILED ERROR CODE: " + str(result)
errorLabel.label_settings.font_color = errorColor
return
else:
errorLabel.text = "unzipping..."
print("works as expected brotha")
var unzipper:ZIPReader = ZIPReader.new() # sus
unzipper.open(GetLocalPath()+"download.zip")
var files:PackedStringArray = unzipper.get_files()
for file in files:
var actualfile = file.replace("MusicPlayerExports/","")
print("FILE: " + actualfile)
var FileAcess:FileAccess = FileAccess.open(GetLocalPath() + actualfile,FileAccess.WRITE_READ)
if FileAcess != null:
var downloadedfile = unzipper.read_file(file)
FileAcess.store_buffer(downloadedfile)
print("FOUND FILE: " + GetLocalPath()+file)
#FileAcess.store_string()
unzipper.close()
OS.shell_open(OS.get_executable_path())
get_tree().root.close_requested.emit()
get_tree().root.queue_free()
func GetLocalPath() -> String:
var exepath:PackedStringArray = OS.get_executable_path().split("/")
var path:String
for sting in (exepath.size()-1):
path += exepath[sting] + "/"
return path
OS.shell_open(updateLink)
+6 -6
View File
@@ -5,10 +5,9 @@ extends Button
@onready var yt_link: LineEdit = $"../YoutubeMenuHolder/Youtube menu/YTLink"
@onready var yt_download: Button = $"../YoutubeMenuHolder/Youtube menu/YTDownload"
@onready var loading_img: Sprite2D = $"../YoutubeMenuHolder/Youtube menu/LoadingIMG"
var currentlyExtending:bool
var Target:float = 50
var downloadList:bool = false
signal ContinueProcess
@onready var Parent:MainScene = get_tree().root.get_child(2)
@@ -18,6 +17,7 @@ func _ready() -> void:
YtDlp.setup_completed.connect(YTSetupCompleted)
yt_download.pressed.connect(DownloadYTVidFromLink)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
if currentlyExtending:
@@ -38,17 +38,18 @@ func YTSetupCompleted():
yt_download.disabled = false
func DownloadPlaylistConf():
downloadList = true
ContinueProcess.emit()
func DownloadSingleSongConf():
var idx:int = yt_link.text.find("&list=")
yt_link.text = yt_link.text.erase(idx,500)
ContinueProcess.emit()
func DownloadYTVidFromLink():
if yt_link.text.is_empty():
OS.alert("please gimme a link")
return
if "list=" in yt_link.text:
if "&list=" in yt_link.text:
Parent.playlist_or_song.show()
Parent.playlist_or_song.confirmed.connect(DownloadPlaylistConf)
Parent.playlist_or_song.canceled.connect(DownloadSingleSongConf)
@@ -62,8 +63,7 @@ func DownloadYTVidFromLink():
yt_link.clear()
download.set_destination(owner.PlaylistsLocation[owner.CurrentPlaylist])
print(owner.PlaylistsLocation[owner.CurrentPlaylist])
download.convert_to_audio(YtDlp.Audio.MP3)
download._download_playlist = downloadList
download.convert_to_audio(YtDlp.Audio.MP3)
download.start()
yt_download.disabled = true
download.completely_finished.connect(DownloadCompleted)