Pereiti prie turinio

Puslapiu autoregistrator C#


Rekomenduojami pranešimai

Gal kam bus idomu, as pradejau rasyti autoregistrator forumu profiles ir socialiniams tinklams. IDE isrinkau Visual Studio 2010, nes ten nera nemalonumu su webbrowser komponente. Tinklapiu duomenys saugomos XML byloje settings.xml.

Turinys bylos:

<?xml version="1.0" encoding="utf-8" ?>
<data>
 <site num="1" name="http://www.dcresource.com/forums/" pr="6">
   <step num="1" todo="navigate" value_todo="http://www.dcresource.com/forums/" value_2_todo="none">navigating to view Profile</step>
   <step num="2" todo="wait" value_todo="" value_2_todo="">waiting for "START NEXT"</step>
   <step num="3" todo="navigate" value_todo="http://www.dcresource.com/forums/register.php" value_2_todo="none">navigating</step>
   <step num="4" todo="textinput" value_todo="username" value_2_todo="19">filling textarea Username</step>
   <step num="5" todo="textinput" value_todo="password" value_2_todo="20">filling textarea Password</step>
   <step num="6" todo="textinput" value_todo="password" value_2_todo="21">filling textarea Confirm Password</step>
   <step num="7" todo="textinput" value_todo="email" value_2_todo="22">filling textarea Email</step>
   <step num="8" todo="textinput" value_todo="email" value_2_todo="23">filling textarea Confirm Email</step>
   <step num="9" todo="checkbox" value_todo="" value_2_todo="27">checking checkbox</step>
   <step num="10" todo="checkbox" value_todo="" value_2_todo="28">checking checkbox</step>
   <step num="11" todo="checkbox" value_todo="true" value_2_todo="29">checking checkbox</step>
   <step num="12" todo="wait" value_todo="" value_2_todo="">waiting for "START NEXT"</step>
   <step num="13" todo="pressbutton" value_todo="enter" value_2_todo="39">pressing button</step>
   <step num="14" todo="wait" value_todo="" value_2_todo="">waiting for "START NEXT"</step>
   <step num="15" todo="wait_to_email" value_todo="" value_2_todo="[email protected]|Action Required to Activate Membership for Digital Camera Resource Page Forums|href="|">|6|6">waiting for "GET EMAIL AND CONFIRM"</step>
   <step num="16" todo="navigate" value_todo="none" value_2_todo="fromMailParameter">confirming profile</step>
   <step num="17" todo="navigate" value_todo="http://www.dcresource.com/forums/" value_2_todo="none">navigating</step>
   <step num="18" todo="textinput" value_todo="username" value_2_todo="5">filling textarea Username</step>
   <step num="19" todo="textinput" value_todo="password" value_2_todo="6">filling textarea Password</step>
   <step num="20" todo="checkbox" value_todo="true" value_2_todo="7">checking checkbox</step>
   <step num="21" todo="pressbutton" value_todo="enter" value_2_todo="8">pressing button</step>
   <step num="22" todo="wait" value_todo="" value_2_todo="">waiting for "START NEXT"</step>
   <step num="23" todo="navigate" value_todo="http://www.dcresource.com/forums/profile.php?do=editsignature" value_2_todo="none">navigating</step>
   <step num="24" todo="gethreftxt" value_todo="My Profile" value_2_todo="id1">getting A element text</step>
   <step num="25" todo="signinput" value_todo="textarea_URL_num" value_2_todo="1">inserting signature</step>
   <step num="26" todo="pressbutton" value_todo="enter" value_2_todo="15">pressing button</step>
   <step num="27" todo="save" value_todo="hrefurl" value_2_todo="">saving</step>
   <step num="28" todo="finish" value_todo="" value_2_todo="">site registration finished</step>
 </site>
 <site num="2" name="http://redsocial.secondspain.es/" pr="3">
   <step num="1" todo="navigate" value_todo="http://redsocial.secondspain.es/index.php" value_2_todo="none">navigating to view Profile</step>
   <step num="2" todo="wait" value_todo="" value_2_todo="">waiting for "START NEXT"</step>
   <step num="3" todo="navigate" value_todo="http://redsocial.secondspain.es/mod/invite/register.php" value_2_todo="none">navigating</step>
   <step num="4" todo="textinput" value_todo="username" value_2_todo="20">filling textarea Username</step>
   <step num="5" todo="textinput" value_todo="email" value_2_todo="21">filling textarea Email Address</step>
   <step num="6" todo="wait" value_todo="" value_2_todo="">waiting for "START NEXT"</step>
   <step num="7" todo="pressbutton" value_todo="enter" value_2_todo="23">pressing button</step>
   <step num="8" todo="wait" value_todo="" value_2_todo="">waiting for "START NEXT"</step>
   <step num="9" todo="wait_to_email" value_todo="" value_2_todo="[email protected]|Second Spain cuenta de verificación|http|Tu direc|0|4">waiting for "GET EMAIL AND CONFIRM"</step>
   <step num="10" todo="navigate" value_todo="none" value_2_todo="fromMailParameter">confirming profile</step>
   <step num="11" todo="textinput" value_todo="username" value_2_todo="20">filling textarea 1</step>
   <step num="12" todo="textinput" value_todo="username" value_2_todo="21">filling textarea 2</step>
   <step num="13" todo="textinput" value_todo="password" value_2_todo="22">filling textarea 3</step>
   <step num="14" todo="textinput" value_todo="password" value_2_todo="23">filling textarea 4</step>
   <step num="15" todo="checkbox" value_todo="true" value_2_todo="24">checking checkbox</step>
   <step num="16" todo="wait" value_todo="" value_2_todo="">waiting for "START NEXT"</step>
   <step num="17" todo="pressbutton" value_todo="enter" value_2_todo="26">pressing button</step>
   <step num="18" todo="wait" value_todo="" value_2_todo="">waiting for "START NEXT"</step>
   <step num="19" todo="navigate" value_todo="http://redsocial.secondspain.es/index.php" value_2_todo="none">navigating</step>
   <step num="20" todo="textinput" value_todo="username" value_2_todo="0">filling textarea Username</step>
   <step num="21" todo="textinput" value_todo="password" value_2_todo="1">filling textarea Password</step>
   <step num="22" todo="wait" value_todo="" value_2_todo="">waiting for "START NEXT"</step>
   <step num="23" todo="pressbutton" value_todo="enter" value_2_todo="3">pressing button</step>
   <step num="24" todo="wait" value_todo="" value_2_todo="">waiting for "START NEXT"</step>
   <step num="25" todo="gethreftxt" value_todo="Tu Perfil" value_2_todo="id1">getting A element text</step>
   <step num="26" todo="wait" value_todo="" value_2_todo="">waiting for "START NEXT"</step>
   <step num="27" todo="navigate" value_todo="none" value_2_todo="id1">navigating</step>
   <step num="28" todo="gethreftxt" value_todo="Editar este perfil" value_2_todo="id2">getting A element text</step>
   <step num="29" todo="wait" value_todo="" value_2_todo="">waiting for "START NEXT"</step>
   <step num="30" todo="navigate" value_todo="none" value_2_todo="id2">navigating</step>
   <step num="31" todo="wait" value_todo="" value_2_todo="">waiting for "START NEXT"</step>
   <step num="32" todo="signinput" value_todo="textarea" value_2_todo="profiledetails__biography__">inserting signature</step>
   <step num="33" todo="wait" value_todo="" value_2_todo="">waiting for "START NEXT"</step>
   <step num="34" todo="pressbutton" value_todo="enter" value_2_todo="34">pressing button</step>
   <step num="35" todo="save" value_todo="hrefurl" value_2_todo="">saving</step>
   <step num="36" todo="finish" value_todo="" value_2_todo="">site registration finished</step>
 </site>
</data> 

Trumpai apie programele. Duomenys is settings.xml bylos apskaiciuojami su .exe programele. Norint padidinti baze, reikia aprasyti registracija XML byloje, daugumoje atveju EXE nieko nereiks keisti. Pacia programele is HTML puslapio strukturos ima pagal indeksus reikiama HTML elementa ir apdoroja ji.

Stai programeles turinys:

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 System.Xml;
using System.IO;
using OpenPop.Mime;
using OpenPop.Mime.Header;
using OpenPop.Pop3;
using OpenPop.Pop3.Exceptions;
using OpenPop.Common.Logging;
using Message = OpenPop.Mime.Message;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
bool document_loaded = false, siteshow = true, checkemail = false;
       string username = "", password = "", email = "", result = "", str_replaced = "", hrefurl = "", hrefurl2 = "", htmlcode = "";
       int sitenum = 0, stepnum = 0;
       string[] profiles = new string[200];

       private void button1_Click(object sender, EventArgs e)
       {
           username = textBox3.Text;
           password = textBox4.Text;
           email = textBox5.Text;
           sitenum = Convert.ToInt32(textBox10.Text);
       }

       public void navigate(string i)
       {
           webBrowser1.Navigate(i);
           while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
           {
               Application.DoEvents();
           }
       }

       private void start_submit_Click(object sender, EventArgs e)
       {
           if(document_loaded == false)
           {
               XmlDocument xdoc = new XmlDocument();
               xdoc.Load("settings.xml");

               foreach (System.Xml.XmlNode node in xdoc.SelectNodes("//site"))
               {
                   if (siteshow == true)
                   {
                       textBox7.Text = node.Attributes["num"].Value.ToString() + ") Site " + node.Attributes["name"].Value.ToString() + " beginning profile registration...";
                       textBox7.SelectionStart = textBox7.Text.Length;
                       textBox7.ScrollToCaret();
                   }
                   if (sitenum < Convert.ToInt32(node.Attributes["num"].Value))
                   {
                       foreach (System.Xml.XmlNode child in node)
                       {
                           if (stepnum < Convert.ToInt32(child.Attributes["num"].Value))
                           {
                               if (child.Attributes["todo"].Value.ToString() == "navigate")
                               {
                                   if (child.Attributes["value_2_todo"].Value.ToString() == "fromMailParameter")
                                   {
                                       textBox7.Text += "\r\n" + child.InnerText;
                                       textBox7.SelectionStart = textBox7.Text.Length;
                                       textBox7.ScrollToCaret();
                                       navigate(result);
                                   }
                                   else if (child.Attributes["value_2_todo"].Value.ToString() == "id1")
                                   {
                                       textBox7.Text += "\r\n" + child.InnerText;
                                       textBox7.SelectionStart = textBox7.Text.Length;
                                       textBox7.ScrollToCaret();
                                       navigate(hrefurl);
                                   }
                                   else if (child.Attributes["value_2_todo"].Value.ToString() == "id2")
                                   {
                                       textBox7.Text += "\r\n" + child.InnerText;
                                       textBox7.SelectionStart = textBox7.Text.Length;
                                       textBox7.ScrollToCaret();
                                       navigate(hrefurl2);
                                   }
                                   else if ((child.Attributes["value_2_todo"].Value.ToString() == "none"))
                                   {
                                       textBox7.Text += "\r\n" + child.InnerText;
                                       textBox7.SelectionStart = textBox7.Text.Length;
                                       textBox7.ScrollToCaret();
                                       navigate(child.Attributes["value_todo"].Value.ToString());
                                   }
                               }
                               else if (child.Attributes["todo"].Value.ToString() == "checkbox")
                               {
                                   textBox7.Text += "\r\n" + child.InnerText;
                                   textBox7.SelectionStart = textBox7.Text.Length;
                                   textBox7.ScrollToCaret();
                                   HtmlElementCollection es = webBrowser1.Document.GetElementsByTagName("input");
                                   HtmlElement ele0 = es[Convert.ToInt32(child.Attributes["value_2_todo"].Value.ToString())];
                                   ele0.SetAttribute("checked", child.Attributes["value_todo"].Value.ToString());
                               }
                               else if (child.Attributes["todo"].Value.ToString() == "pressbutton")
                               {
                                   textBox7.Text += "\r\n" + child.InnerText;
                                   textBox7.SelectionStart = textBox7.Text.Length;
                                   textBox7.ScrollToCaret();
                                   webBrowser1.Document.GetElementsByTagName("input")[Convert.ToInt32(child.Attributes["value_2_todo"].Value.ToString())].InvokeMember("Click");                                   
                               }
                               else if (child.Attributes["todo"].Value.ToString() == "textinput")
                               {
                                   textBox7.Text += "\r\n" + child.InnerText;
                                   textBox7.SelectionStart = textBox7.Text.Length;
                                   textBox7.ScrollToCaret();
                                   if (child.Attributes["value_todo"].Value.ToString() == "username")
                                   {
                                       HtmlElementCollection es = webBrowser1.Document.GetElementsByTagName("input");
                                       HtmlElement ele0 = es[Convert.ToInt32(child.Attributes["value_2_todo"].Value.ToString())];
                                       ele0.InnerText = username;
                                   }
                                   if (child.Attributes["value_todo"].Value.ToString() == "password")
                                   {
                                       HtmlElementCollection es = webBrowser1.Document.GetElementsByTagName("input");
                                       HtmlElement ele0 = es[Convert.ToInt32(child.Attributes["value_2_todo"].Value.ToString())];
                                       ele0.InnerText = password;
                                   }
                                   if (child.Attributes["value_todo"].Value.ToString() == "email")
                                   {
                                       HtmlElementCollection es = webBrowser1.Document.GetElementsByTagName("input");
                                       HtmlElement ele0 = es[Convert.ToInt32(child.Attributes["value_2_todo"].Value.ToString())];
                                       ele0.InnerText = email;
                                   }
                               }
                               else if (child.Attributes["todo"].Value.ToString() == "combobox")
                               {
                                   textBox7.Text += "\r\n" + child.InnerText;
                                   textBox7.SelectionStart = textBox7.Text.Length;
                                   textBox7.ScrollToCaret();
                                   HtmlElementCollection es = webBrowser1.Document.GetElementsByTagName("select");
                                   HtmlElement ele0 = es[Convert.ToInt32(child.Attributes["value_2_todo"].Value.ToString())];
                                   ele0.SetAttribute("selectedIndex", child.Attributes["value_todo"].Value.ToString());
                               }
                               else if (child.Attributes["todo"].Value.ToString() == "wait")
                               {
                                   textBox7.Text += "\r\n" + child.InnerText;
                                   textBox7.SelectionStart = textBox7.Text.Length;
                                   textBox7.ScrollToCaret();
                                   stepnum = Convert.ToInt32(child.Attributes["num"].Value);
                                   siteshow = false;
                                   goto Out;
                               }
                               else if (child.Attributes["todo"].Value.ToString() == "wait_to_email")
                               {
                                   textBox7.Text += "\r\n" + child.InnerText;
                                   textBox7.SelectionStart = textBox7.Text.Length;
                                   textBox7.ScrollToCaret();
                                   stepnum = Convert.ToInt32(child.Attributes["num"].Value);
                                   checkemail = true;
                                   siteshow = false;
                                   goto Out;
                               }
                               else if (child.Attributes["todo"].Value.ToString() == "finish")
                               {
                                   textBox7.Text += "\r\n" + child.InnerText;
                                   textBox7.SelectionStart = textBox7.Text.Length;
                                   textBox7.ScrollToCaret();
                                   sitenum = Convert.ToInt32(node.Attributes["num"].Value);
                                   stepnum = 0;
                                   siteshow = true;
                                   goto Out;
                               }
                               else if (child.Attributes["todo"].Value.ToString() == "make_str")
                               {
                                   textBox7.Text += "\r\n" + child.InnerText;
                                   textBox7.SelectionStart = textBox7.Text.Length;
                                   textBox7.ScrollToCaret();
                                   if (child.Attributes["value_2_todo"].Value.ToString() == "username")
                                   {
                                       str_replaced = child.Attributes["value_todo"].Value.ToString().Replace("*", username);
                                   }
                               }
                               else if (child.Attributes["todo"].Value.ToString() == "gethreftext")
                               {
                                   textBox7.Text += "\r\n" + child.InnerText;
                                   textBox7.SelectionStart = textBox7.Text.Length;
                                   textBox7.ScrollToCaret();
                                   hrefurl = webBrowser1.Document.GetElementsByTagName("a")[Convert.ToInt32(child.Attributes["value_2_todo"].Value)].GetAttribute("href");
                                   MessageBox.Show(hrefurl);
                               }
                               else if (child.Attributes["todo"].Value.ToString() == "gethreftxt")
                               {
                                   textBox7.Text += "\r\n" + child.InnerText;
                                   textBox7.SelectionStart = textBox7.Text.Length;
                                   textBox7.ScrollToCaret();
                                   for (int r = 0; r < Convert.ToInt32(webBrowser1.Document.GetElementsByTagName("a").Count); r++)
                                   {
                                       if (webBrowser1.Document.GetElementsByTagName("a")[r].OuterText == child.Attributes["value_todo"].Value.ToString())
                                       {
                                           if (child.Attributes["value_2_todo"].Value.ToString() == "id1")
                                           {
                                               hrefurl = webBrowser1.Document.GetElementsByTagName("a")[r].GetAttribute("href");
                                               MessageBox.Show(hrefurl);
                                           }
                                           else if (child.Attributes["value_2_todo"].Value.ToString() == "id2") 
                                           {
                                               hrefurl2 = webBrowser1.Document.GetElementsByTagName("a")[r].GetAttribute("href");
                                               MessageBox.Show(hrefurl2);
                                           }
                                       }
                                   }
                               }
                               else if (child.Attributes["todo"].Value.ToString() == "signinput")
                               {
                                   if (child.Attributes["value_todo"].Value.ToString() == "textarea_URL_num")
                                   {
                                       textBox7.Text += "\r\n" + child.InnerText;
                                       textBox7.SelectionStart = textBox7.Text.Length;
                                       textBox7.ScrollToCaret();
                                       htmlcode = "[url=\"" + textBox1.Text + "\"]" + textBox2.Text + "[/url]" + "1123"; 
                                       HtmlElementCollection es = webBrowser1.Document.GetElementsByTagName("textarea");
                                       HtmlElement ele0 = es[Convert.ToInt32(child.Attributes["value_2_todo"].Value.ToString())];
                                       ele0.InnerText = htmlcode;
                                   }
                                   else if (child.Attributes["value_todo"].Value.ToString() == "textarea")
                                   {
                                       textBox7.Text += "\r\n" + child.InnerText;
                                       textBox7.SelectionStart = textBox7.Text.Length;
                                       textBox7.ScrollToCaret();
                                       htmlcode = "<a href=\"" + textBox1.Text + "\">" + textBox2.Text + "</a>" + "111";
                                       HtmlElement textArea = webBrowser1.Document.All[child.Attributes["value_2_todo"].Value];
                                       textArea.InnerText = htmlcode;
                                   }
                               }
                               else if (child.Attributes["todo"].Value.ToString() == "save")
                               {
                                   textBox7.Text += "\r\n" + child.InnerText;
                                   textBox7.SelectionStart = textBox7.Text.Length;
                                   textBox7.ScrollToCaret();
                                   if (child.Attributes["value_todo"].Value.ToString() == "str_replaced")
                                   {
                                       profiles[Convert.ToInt32(node.Attributes["num"].Value)] = str_replaced;
                                   }
                                   else if (child.Attributes["value_todo"].Value.ToString() == "hrefurl") 
                                   {
                                       profiles[Convert.ToInt32(node.Attributes["num"].Value)] = hrefurl;
                                   }
                                   MessageBox.Show(profiles[Convert.ToInt32(node.Attributes["num"].Value)].ToString());
                               }
                           }
                       }
                   }
               }
               Out:
               System.Threading.Thread.Sleep(1);
           }
       }

       private void button54_Click(object sender, EventArgs e)
       {
           XmlDocument xdoc = new XmlDocument();
           xdoc.Load("settings.xml");
           string vtd = "";
           if (checkemail == true)
           {
               foreach (System.Xml.XmlNode node in xdoc.SelectNodes("//site"))
               {
                   if (sitenum == (Convert.ToInt32(node.Attributes["num"].Value) - 1))
                   {
                       foreach (System.Xml.XmlNode child in node)
                       {
                           if (stepnum == Convert.ToInt32(child.Attributes["num"].Value)) 
                           {
                               vtd = child.Attributes["value_2_todo"].Value.ToString();
                               string[] substrings = vtd.Split('|');
                               checkmail(substrings[0], substrings[1], substrings[2], substrings[3], Convert.ToInt32(substrings[4]), Convert.ToInt32(substrings[5]));
                           }
                       }
                   }
               }
           }
       }
       public void checkmail(string adrs, string subj, string k, string l, int q, int w) 
       {
           string emailtext = "";
           Pop3Client pop3Client = new Pop3Client();
           if (pop3Client.Connected) pop3Client.Disconnect();
           pop3Client.Connect(textBox8.Text, 110, false);
           pop3Client.Authenticate(textBox5.Text.Replace("@","+"), textBox9.Text);
           int messageCount = pop3Client.GetMessageCount();
           for (int i = 1; i <= messageCount; i++)
           {
               MessageHeader headers = pop3Client.GetMessageHeaders(i);
               RfcMailAddress from = headers.From;
               string subject = headers.Subject;
               if (from.HasValidMailAddress && from.Address.Equals(adrs) && subj.Equals(subject))
               {
                   Message message = pop3Client.GetMessage(i);
                   MessagePart selectedMessagePart = message.MessagePart;
                   emailtext = selectedMessagePart.GetBodyAsText();
               }
           }
           int start = emailtext.IndexOf(k);
           int end = emailtext.IndexOf(l);
           result = emailtext.Substring(start + q, end - start - w);
           if (result != null) 
           {
               textBox7.Text += "\r\nemail received. waiting for \"START/NEXT\"";
               MessageBox.Show("|" + result + "|");
               textBox7.SelectionStart = textBox7.Text.Length;
               textBox7.ScrollToCaret();
           }
           else 
           {
               textBox7.Text += "\r\nwaiting for email.";
               textBox7.SelectionStart = textBox7.Text.Length;
               textBox7.ScrollToCaret();
           }
       }
   }
}

Ka daro programele? Tam reikalingas screenshot kad paaiskinti programos veikima. Zemiau rasit paveiksleli programos. Is pradziu vartotojas iveda parametrus, o paskui spaudzia dvi knopkes, "start next" ir "get email and confirm". Kai pirma karta spaudzia tada uzsikrauna puslapis, o paskui skaito instrukcijos zemiau ka daryti, t.y. ivesti verification image arba palaukti arba testi arba gauti laiska ir paspausti automatiskai i nuoroda tam kad aktivuoti profile. Programos veikimui reikalinga library OpenPop. Zemiau vieno tinklapio registracijos procesas. Trukumai programos, tas kad iki pilno automatizavimo dar reikia rasyti koda. Aciu.

post-40557-043662500 1310575885_thumb.png

post-40557-031801500 1310575891_thumb.png

post-40557-080542200 1310575899_thumb.png

post-40557-056601600 1310575905_thumb.png

post-40557-082480600 1310575910_thumb.png

post-40557-024565500 1310575921_thumb.png

Redagavo ZTG
Nuoroda į pranešimą
Dalintis kituose puslapiuose

        private void button1_Click(object sender, EventArgs e)
       {
           username = textBox3.Text;
           password = textBox4.Text;
           email = textBox5.Text;
           sitenum = Convert.ToInt32(textBox10.Text);
       }

 

draugiskai siūlyčiau forma kai dėlioji, pasikeisti defaultinius komponentų pavadinimus į prasmingus, pvz textBox3 keisti į TUsername ir panašiai. Ir kodas atrodo kultūringiau, ir pats po kurio laiko atsidaręs kodą iš karto pamatysi kam kuris inputas yra skirtas.

 

 

Nuoroda į pranešimą
Dalintis kituose puslapiuose

        private void button1_Click(object sender, EventArgs e)
       {
           username = textBox3.Text;
           password = textBox4.Text;
           email = textBox5.Text;
           sitenum = Convert.ToInt32(textBox10.Text);
       }

 

draugiskai siūlyčiau forma kai dėlioji, pasikeisti defaultinius komponentų pavadinimus į prasmingus, pvz textBox3 keisti į TUsername ir panašiai. Ir kodas atrodo kultūringiau, ir pats po kurio laiko atsidaręs kodą iš karto pamatysi kam kuris inputas yra skirtas.

Jo, kai kodo daug - reikia galvoti, ka pakeisti, ka parasyti komentaruose. Kolkas viska galvoje laikau, tai nieko nekeiciau. :( Aciu.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...