.NET 4.x Необходимо Ваше мнение - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. На данный момент изучаю C# и параллельно пишу для себя небольшую программу. Хотелось бы узнать ваше мнение касаемо говнокодства в моем исполнении. Готов выслушать всю критику. Структура - проект состоит из двух компонентов. Первый - форма на которой пока есть прогресс бар и кнопка, данная форма будет использоваться в основном для визуализации. Второй - библиотека dll, в которой я пишу функции и разместил все переменные. Соответственно библиотека подключена к форме и я вызываю функции из нее. Вот собственно код библиотеки:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Net;
using HtmlAgilityPack;
using hap = HtmlAgilityPack;
using System.Text.RegularExpressions;
 
namespace fmbt
{
    public class functions
    {
        public static string d { get; set; }
        public static string html { get; set; }
        public static string auth { get; set; }
        public static string lang { get; set; }
        public static string remember { get; set; }
        public static string[] sceneimages = new string[12];
        public static string[] sceneimagesname = new string[12];
        public static string scenevideourl { get; set; }
        //
 
        public static void prequest(string url)
        {
            byte[] buffer = Encoding.UTF8.GetBytes("act=login&id=&username=Rotblonder&password=Rotblond&remember_me=on&x=162&y=15");
 
            HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(url);
            WebReq.Method = "POST";
            WebReq.ContentType = "application/x-www-form-urlencoded";
            WebReq.ContentLength = buffer.Length;
            CookieContainer cookies = new CookieContainer();
            WebReq.CookieContainer = cookies;
            Stream PostData = WebReq.GetRequestStream();
            PostData.Write(buffer, 0, buffer.Length);
            PostData.Close();
 
            HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
            string html = new StreamReader(WebResp.GetResponseStream(), Encoding.UTF8).ReadToEnd();
            WebResp.Close();
 
            foreach (Cookie c in cookies.GetCookies(WebReq.RequestUri))
            {
                switch (c.Name)
                {
                    case "auth":
                        auth = c.Value;
                        break;
                    case "lang":
                        lang = c.Value;
                        break;
                    case "remember_me":
                        remember = c.Value;
                        break;
                }
                Console.WriteLine(c.Name + "--->" + c.Value);
            }
        }
 
        public static void grequest(string url, bool type)  //true - page with sites in refer; false - main page of site in refer
        {
            var webRequest = (HttpWebRequest)WebRequest.Create(url);
            webRequest.UserAgent = "Mozilla/5.0 (PLAYSTATION 3; 3.55)";
            webRequest.Accept = "*/*";
            webRequest.Method = "GET";
            if (type == true)
            {
                webRequest.Referer = "http://smtng.com/?auth=" + auth;
            }
            else
            {
                webRequest.Referer = "http://smtng.com/i/?auth=" + auth;
            }
 
            var response = webRequest.GetResponse().GetResponseStream();
 
            html = new StreamReader(response, Encoding.UTF8).ReadToEnd();
        }
 
        public static void getlinks()
        {
            grequest("http://smtng.com/?auth=" + auth, true);
            hap.HtmlDocument doc = new hap.HtmlDocument();
            doc.LoadHtml(html);
            HtmlNode thislink = doc.DocumentNode.SelectSingleNode("//div[@class='updatebuttons']/a[2]");
            //Console.WriteLine(thislink.Attributes["href"].Value);
            foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//div[@id='vids']/div/a"))
            {
                //Match id = Regex.Match(link.Attributes["href"].Value, @"\*/[0-9]+/*");
                //membersimagesrc[i++] = link.Attributes["src"].Value;
                Console.WriteLine(link.Attributes["href"].Value);
                //i++;
            }
        }
        public static void singlepage(int id)
        {
            grequest("http://smtng.com/10229?&auth=" + auth, false);
            hap.HtmlDocument doc = new hap.HtmlDocument();
            doc.LoadHtml(html);
            HtmlNode videourl = doc.DocumentNode.SelectSingleNode("//div[@id='moviehd']/a[@id='media']");
            scenevideourl = videourl.Attributes["href"].Value;
            int i = 0;
            foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//div[@class='thumbs']/a"))
            {
                Match n = Regex.Match(link.Attributes["href"].Value, @"faces/(?<name>[a-z0-9.]+)");
                sceneimages[i] = link.Attributes["href"].Value;
                sceneimagesname[i] = n.Groups["name"].ToString();
                //Console.WriteLine(link.Attributes["href"].Value);
                i++;
            }

        }
    }
}
А вот код формы:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using fmbt;
using System.IO;
using System.Net;
 
namespace mbt
{
    public partial class index : Form
    {
        public index()
        {
            InitializeComponent();
            AppDomain.CurrentDomain.ProcessExit += new EventHandler(OnProcessExit); 
        }
        public string path { get; set; }
        public WebClient clientTest2;
 
        private void index_Load(object sender, EventArgs e)
        {
            fmbt.functions.prequest("http://smtng.com/login/");
            fmbt.functions.singlepage(10229);
            homepathdialog.Description = "Укажите папку для загрузок";
            DialogResult homepath = homepathdialog.ShowDialog();
            if (homepath == DialogResult.OK)
            {
                string homefolderpath = homepathdialog.SelectedPath;
                path = homefolderpath + "\\test";
                if (Directory.Exists(path))
                {
                    return;
                }
                else
                {
                    DirectoryInfo di = Directory.CreateDirectory(path);
 
                }
                fmbt.functions.getlinks();
                //fmbt.functions.singlepage(10229);
            }
            else
            {
                this.Close();
            }
        }
 
        static void OnProcessExit(object sender, EventArgs e)
        {
            fmbt.functions.grequest("http://smtng.com/logout/?auth=" + fmbt.functions.auth, true);
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            clientTest2 = new WebClient();
            clientTest2.DownloadFileCompleted += new AsyncCompletedEventHandler(clientTest_DownloadFileCompleted);
            clientTest2.DownloadProgressChanged += new DownloadProgressChangedEventHandler(clientTest_DownloadProgressChanged);
            clientTest2.DownloadFileAsync(new Uri(fmbt.functions.scenevideourl), path + "\\abc.mp4");//public версия
        }
 
        private void clientTest_DownloadFileCompleted(object ad, AsyncCompletedEventArgs e)
        {
            MessageBox.Show("Скачивание завершено!");
        }
        private void clientTest_DownloadProgressChanged(object obj, DownloadProgressChangedEventArgs e)
        {
            progressBar1.Value = e.ProgressPercentage;
            label1.Text = String.Format("Загружено: {0} Кбайт из {1}", e.BytesReceived.ToString(), e.TotalBytesToReceive.ToString());
        }
    }
}

Решение задачи: «.NET 4.x Необходимо Ваше мнение»

textual
Листинг программы
/// <summary>
/// 
/// </summary>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5
Похожие ответы