Added Broadcast listening
This commit is contained in:
		
							parent
							
								
									3122652145
								
							
						
					
					
						commit
						2fe0a11f2e
					
				| 
						 | 
					@ -1,21 +1,22 @@
 | 
				
			||||||
<Properties StartupConfiguration="{E26F8159-6B4B-4660-A7A4-D0333DFEF0DD}|Default" NuGet.AddPackagesDialog.IncludePrerelease="True">
 | 
					<Properties StartupConfiguration="{E26F8159-6B4B-4660-A7A4-D0333DFEF0DD}|Default" NuGet.AddPackagesDialog.IncludePrerelease="True">
 | 
				
			||||||
  <MonoDevelop.Ide.Workbench ActiveDocument="Program.cs">
 | 
					  <MonoDevelop.Ide.Workbench ActiveDocument="Broadcast.cs">
 | 
				
			||||||
    <Files>
 | 
					    <Files>
 | 
				
			||||||
      <File FileName="TYTD.Api/Server/Models/InfoType.cs" Line="155" Column="47" />
 | 
					      <File FileName="TYTD.Api/Server/Models/InfoType.cs" Line="155" Column="47" />
 | 
				
			||||||
      <File FileName="TYTD.Api/Server/Functions/Downloader.cs" Line="18" Column="1" />
 | 
					      <File FileName="TYTD.Api/Server/Functions/Downloader.cs" Line="69" Column="28" />
 | 
				
			||||||
      <File FileName="TYTD.Api/Server/Models/SavedMedia.cs" Line="1" Column="1" />
 | 
					      <File FileName="TYTD.Api/Server/Models/SavedMedia.cs" Line="1" Column="1" />
 | 
				
			||||||
      <File FileName="TYTD.Api/Server/Models/SavedVideo.cs" Line="8" Column="1" />
 | 
					      <File FileName="TYTD.Api/Server/Models/SavedVideo.cs" Line="8" Column="1" />
 | 
				
			||||||
      <File FileName="TYTD.Api/Server/Models/InfomationQueueItem.cs" Line="280" Column="42" />
 | 
					      <File FileName="TYTD.Api/Server/Models/InfomationQueueItem.cs" Line="280" Column="42" />
 | 
				
			||||||
      <File FileName="TYTD.Api/Server/Functions/ffmpeg.cs" Line="5" Column="15" />
 | 
					      <File FileName="TYTD.Api/Server/Functions/ffmpeg.cs" Line="5" Column="15" />
 | 
				
			||||||
      <File FileName="Program.cs" Line="1060" Column="23" />
 | 
					      <File FileName="Program.cs" Line="61" Column="13" />
 | 
				
			||||||
      <File FileName="TYTD.Api/MyClass.cs" Line="80" Column="14" />
 | 
					      <File FileName="TYTD.Api/MyClass.cs" Line="225" Column="46" />
 | 
				
			||||||
      <File FileName="TYTD.Api/Server/Models/SavedChannel.cs" Line="6" Column="10" />
 | 
					      <File FileName="TYTD.Api/Server/Models/SavedChannel.cs" Line="6" Column="10" />
 | 
				
			||||||
      <File FileName="TYTD.Api/Server/Models/SavedPlaylist.cs" Line="7" Column="1" />
 | 
					      <File FileName="TYTD.Api/Server/Models/SavedPlaylist.cs" Line="7" Column="1" />
 | 
				
			||||||
      <File FileName="TYTD.Api/Server/Models/VideoDownloadProgress.cs" Line="13" Column="1" />
 | 
					      <File FileName="TYTD.Api/Server/Models/VideoDownloadProgress.cs" Line="13" Column="1" />
 | 
				
			||||||
      <File FileName="youtube-downloader.csproj" Line="1" Column="1" />
 | 
					      <File FileName="youtube-downloader.csproj" Line="1" Column="1" />
 | 
				
			||||||
      <File FileName="../../../usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" Line="2101" Column="5" />
 | 
					      <File FileName="../../../usr/lib/mono/msbuild/15.0/bin/Microsoft.Common.CurrentVersion.targets" Line="2101" Column="5" />
 | 
				
			||||||
      <File FileName="TYTD.Api/Server/Models/IEnumerator.cs" Line="1" Column="1" />
 | 
					      <File FileName="TYTD.Api/Server/Models/IEnumerator.cs" Line="1" Column="1" />
 | 
				
			||||||
      <File FileName="TYTD.Api/SimpleHttpExtensions.cs" Line="432" Column="1" />
 | 
					      <File FileName="TYTD.Api/SimpleHttpExtensions.cs" Line="17" Column="19" />
 | 
				
			||||||
 | 
					      <File FileName="Broadcast.cs" Line="11" Column="9" />
 | 
				
			||||||
    </Files>
 | 
					    </Files>
 | 
				
			||||||
    <Pads>
 | 
					    <Pads>
 | 
				
			||||||
      <Pad Id="ProjectPad">
 | 
					      <Pad Id="ProjectPad">
 | 
				
			||||||
| 
						 | 
					@ -23,12 +24,13 @@
 | 
				
			||||||
          <Node name="youtube-downloader" expanded="True">
 | 
					          <Node name="youtube-downloader" expanded="True">
 | 
				
			||||||
            <Node name="TYTD.Api" expanded="True">
 | 
					            <Node name="TYTD.Api" expanded="True">
 | 
				
			||||||
              <Node name="Server" expanded="True">
 | 
					              <Node name="Server" expanded="True">
 | 
				
			||||||
 | 
					                <Node name="Functions" expanded="True" />
 | 
				
			||||||
                <Node name="Models" expanded="True" />
 | 
					                <Node name="Models" expanded="True" />
 | 
				
			||||||
              </Node>
 | 
					              </Node>
 | 
				
			||||||
            </Node>
 | 
					            </Node>
 | 
				
			||||||
            <Node name="youtube-downloader" expanded="True">
 | 
					            <Node name="youtube-downloader" expanded="True">
 | 
				
			||||||
              <Node name="Properties" expanded="True" />
 | 
					              <Node name="Properties" expanded="True" />
 | 
				
			||||||
              <Node name="Program.cs" selected="True" />
 | 
					              <Node name="Broadcast.cs" selected="True" />
 | 
				
			||||||
            </Node>
 | 
					            </Node>
 | 
				
			||||||
          </Node>
 | 
					          </Node>
 | 
				
			||||||
        </State>
 | 
					        </State>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Net;
 | 
				
			||||||
 | 
					namespace TYTD
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public class Broadcast
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public Broadcast(ushort port,string name)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            this.port = port;
 | 
				
			||||||
 | 
					            this.name = name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public string name { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public ushort port { get; set; }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public class BroadcastSettings
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public BroadcastSettings()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            name = Dns.GetHostName();
 | 
				
			||||||
 | 
					            broadcast = true;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        public bool broadcast { get; set; }
 | 
				
			||||||
 | 
					        public string name { get; set; }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										51
									
								
								Program.cs
								
								
								
								
							
							
						
						
									
										51
									
								
								Program.cs
								
								
								
								
							| 
						 | 
					@ -25,6 +25,7 @@ using YoutubeExplode.Playlists;
 | 
				
			||||||
using Dasync.Collections;
 | 
					using Dasync.Collections;
 | 
				
			||||||
using YoutubeExplode.Search;
 | 
					using YoutubeExplode.Search;
 | 
				
			||||||
using Hyperlinq;
 | 
					using Hyperlinq;
 | 
				
			||||||
 | 
					using System.Net.Sockets;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace TYTD
 | 
					namespace TYTD
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -53,8 +54,56 @@ namespace TYTD
 | 
				
			||||||
            }));
 | 
					            }));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            t2.Start();
 | 
					            t2.Start();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            string file = Path.Combine("config","discover_info.json");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            BroadcastSettings settings = new BroadcastSettings();
 | 
				
			||||||
 | 
					           
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //http://+:3250/
 | 
				
			||||||
 | 
					            if(File.Exists(file))
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                settings=JsonConvert.DeserializeObject<BroadcastSettings>(file);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            if(settings.broadcast)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                ushort port = 3250;
 | 
				
			||||||
 | 
					                if(arg.Length > 0)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    string url0 = arg[0];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    Uri uri = new Uri(url0.Replace("+", "domain"));
 | 
				
			||||||
 | 
					                    port = (ushort)uri.Port;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                UdpClient cl;
 | 
				
			||||||
 | 
					               
 | 
				
			||||||
 | 
					                Thread t3 = new Thread(() => {
 | 
				
			||||||
 | 
					                    IPEndPoint end = new IPEndPoint(0, 0);
 | 
				
			||||||
 | 
					                    ushort _port = port;
 | 
				
			||||||
 | 
					                    UdpClient c = new UdpClient(new IPEndPoint(IPAddress.Any, 32501));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    while (true)
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                      var data=  c.Receive(ref end);
 | 
				
			||||||
 | 
					                        string text=Encoding.UTF8.GetString(data);
 | 
				
			||||||
 | 
					                        if(text.Equals("TYTD_BROADCAST", StringComparison.Ordinal))
 | 
				
			||||||
 | 
					                        {
 | 
				
			||||||
 | 
					                            byte[] json = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new Broadcast(_port,settings.name)));
 | 
				
			||||||
 | 
					                            c.Send(json,json.Length, end);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					                t3.Start();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // we need to get our app name so that 
 | 
					            // we need to get our app name so that 
 | 
				
			||||||
            // we can create unique names for our mutex and our pipe
 | 
					            // we can create unique names for our mutex and our pipe
 | 
				
			||||||
| 
						 | 
					@ -158,7 +207,7 @@ namespace TYTD
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            /* Other */
 | 
					            /* Other */
 | 
				
			||||||
            Downloader.RouteAdd("/","Other","Home page", (HttpAction)Index);
 | 
					            Downloader.RouteAdd("/", "Other", "Home page", (HttpAction)Index, "GET");
 | 
				
			||||||
            Downloader.RouteAdd("/extensions.html","Other","Extensions URL", (HttpAction)Extensions);
 | 
					            Downloader.RouteAdd("/extensions.html","Other","Extensions URL", (HttpAction)Extensions);
 | 
				
			||||||
            Downloader.RouteAdd("/{Path}","Other","Website Files", (HttpAction)RootPath);
 | 
					            Downloader.RouteAdd("/{Path}","Other","Website Files", (HttpAction)RootPath);
 | 
				
			||||||
            Downloader.RouteAdd("/{Path}","Other","Upload file over put",(HttpAction)UploadFilePut,"PUT");
 | 
					            Downloader.RouteAdd("/{Path}","Other","Upload file over put",(HttpAction)UploadFilePut,"PUT");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -1 +1 @@
 | 
				
			||||||
8f38b4bfd3e4101cea207f521c4ab951a53995e7
 | 
					511bd001c80deda115b5110ee10fd30363c84ec1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -122,6 +122,7 @@
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <Compile Include="Program.cs" />
 | 
					    <Compile Include="Program.cs" />
 | 
				
			||||||
    <Compile Include="Properties\AssemblyInfo.cs" />
 | 
					    <Compile Include="Properties\AssemblyInfo.cs" />
 | 
				
			||||||
 | 
					    <Compile Include="Broadcast.cs" />
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <None Include="packages.config" />
 | 
					    <None Include="packages.config" />
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue