Compare commits
	
		
			2 Commits
		
	
	
		
			be8f1caf35
			...
			ae4c436a1a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					ae4c436a1a | ||
| 
						 | 
					724e48da04 | 
@@ -1,5 +1,6 @@
 | 
			
		||||
---
 | 
			
		||||
kind: pipeline
 | 
			
		||||
type: docker
 | 
			
		||||
name: build-app
 | 
			
		||||
 | 
			
		||||
steps:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										19
									
								
								Program.cs
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								Program.cs
									
									
									
									
									
								
							@@ -60,12 +60,27 @@ namespace TeleTok
 | 
			
		||||
                return;
 | 
			
		||||
 | 
			
		||||
            var chatId = message.Chat.Id;
 | 
			
		||||
            var messageText = update.Message.Text;
 | 
			
		||||
 | 
			
		||||
            bool isUri = Uri.IsWellFormedUriString(message.ToString(), UriKind.RelativeOrAbsolute);
 | 
			
		||||
            string videoPath;
 | 
			
		||||
 | 
			
		||||
            // Checks if the text contains a valid URL
 | 
			
		||||
            bool isUri = Uri.IsWellFormedUriString(messageText, UriKind.RelativeOrAbsolute);
 | 
			
		||||
 | 
			
		||||
            // Passes the url along to the video downloader if it is valid AND a tiktok link
 | 
			
		||||
            if (isUri)
 | 
			
		||||
            {
 | 
			
		||||
                Regex isTikTok = new Regex(@"(?x)(http(s)?:\/\/)?(?:www|m)\.(?:tiktok.com)\/(?:v|embed|trending)(?:\/)?(?:\?shareId=)?(?P<id>[\da-z]+)", RegexOptions.Singleline);
 | 
			
		||||
                if(messageText.Contains("tiktok.com"))
 | 
			
		||||
                {
 | 
			
		||||
                    videoPath = VidDownload.TikTokUrl(messageText);
 | 
			
		||||
 | 
			
		||||
                    Message ttVideo = await botClient.SendVideoAsync(
 | 
			
		||||
                        chatId: chatId,
 | 
			
		||||
                        videoPath: videoPath,
 | 
			
		||||
                        supportsStreaming: true,
 | 
			
		||||
                        cancellationToken: cancellationToken
 | 
			
		||||
                    );
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            Console.WriteLine($"Received a '{messageText}' message in chat {chatId}.");
 | 
			
		||||
 
 | 
			
		||||
@@ -5,6 +5,41 @@ namespace TeleTok
 | 
			
		||||
{
 | 
			
		||||
    public class VidDownload
 | 
			
		||||
    {
 | 
			
		||||
        
 | 
			
		||||
        static void TikTokURL(string videourl)
 | 
			
		||||
        {
 | 
			
		||||
            string url = videourl;
 | 
			
		||||
 | 
			
		||||
            if(url.Contains("vm.tiktok.com"))
 | 
			
		||||
            {
 | 
			
		||||
                url = UnshortenUrl(url);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            var proc = new Process 
 | 
			
		||||
            {
 | 
			
		||||
                // Function downloads tiktok urls passed from the listener
 | 
			
		||||
                StartInfo = new ProcessStartInfo
 | 
			
		||||
                {
 | 
			
		||||
                    FileName = "/bin/bash",
 | 
			
		||||
                    Arguments = "-c \"tiktok-scraper --filepath /app/videos -d " + videourl + "\"",
 | 
			
		||||
                    UseShellExecute = false,
 | 
			
		||||
                    RedirectStandardOutput = true,
 | 
			
		||||
                    CreateNoWindow = true
 | 
			
		||||
                }
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            proc.Start();
 | 
			
		||||
            proc.WaitForExit();
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        static string UnshortenUrl(string videourl)
 | 
			
		||||
        {
 | 
			
		||||
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(videourl);
 | 
			
		||||
            req.AllowAutoRedirect = false;
 | 
			
		||||
            var resp = req.GetResponse();
 | 
			
		||||
            string realUrl = resp.Headers["Location"];
 | 
			
		||||
 | 
			
		||||
            return realUrl;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user