├── FiverrBot
├── OpenPop.dll
├── HtmlAgilityPack.dll
├── Properties
│ ├── Settings.settings
│ ├── Settings.Designer.cs
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ └── Resources.resx
├── Program.cs
├── Spinner.cs
├── FiverrBot.csproj
├── Form1.resx
├── RandomPassword.cs
├── Form1.cs
└── Form1.Designer.cs
├── .gitattributes
├── FiverrBot.sln
└── .gitignore
/FiverrBot/OpenPop.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ViddleShtix/FiverrBot/HEAD/FiverrBot/OpenPop.dll
--------------------------------------------------------------------------------
/FiverrBot/HtmlAgilityPack.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ViddleShtix/FiverrBot/HEAD/FiverrBot/HtmlAgilityPack.dll
--------------------------------------------------------------------------------
/FiverrBot/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/FiverrBot/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Windows.Forms;
5 |
6 | namespace FiverrBot
7 | {
8 | static class Program
9 | {
10 | ///
11 | /// The main entry point for the application.
12 | ///
13 | [STAThread]
14 | static void Main()
15 | {
16 | Application.EnableVisualStyles();
17 | Application.SetCompatibleTextRenderingDefault(false);
18 | Application.Run(new Form1());
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 | *.sln merge=union
7 | *.csproj merge=union
8 | *.vbproj merge=union
9 | *.fsproj merge=union
10 | *.dbproj merge=union
11 |
12 | # Standard to msysgit
13 | *.doc diff=astextplain
14 | *.DOC diff=astextplain
15 | *.docx diff=astextplain
16 | *.DOCX diff=astextplain
17 | *.dot diff=astextplain
18 | *.DOT diff=astextplain
19 | *.pdf diff=astextplain
20 | *.PDF diff=astextplain
21 | *.rtf diff=astextplain
22 | *.RTF diff=astextplain
23 |
--------------------------------------------------------------------------------
/FiverrBot/Spinner.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using System.Text;
3 | using System.Windows;
4 | using System.Net;
5 | using System.IO;
6 | using System.Collections;
7 | using System.Threading;
8 | using System.Web;
9 | using System.Text.RegularExpressions;
10 | using System;
11 |
12 | namespace FiverrBot
13 | {
14 | public class Spinner
15 | {
16 | private static Random rnd = new Random();
17 | public static string Spin(string str)
18 | {
19 | string regex = @"\{(.*?)\}";
20 | return Regex.Replace(str, regex, new MatchEvaluator(WordScrambler));
21 | }
22 | public static string WordScrambler(Match match)
23 | {
24 | string[] items = match.Value.Substring(1, match.Value.Length - 2).Split('|');
25 | return items[rnd.Next(items.Length)];
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/FiverrBot.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 11.00
3 | # Visual Studio 2010
4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FiverrBot", "FiverrBot\FiverrBot.csproj", "{DA8E3C95-F0E8-49C5-BC05-43B42BE64960}"
5 | EndProject
6 | Global
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
8 | Debug|x86 = Debug|x86
9 | Release|x86 = Release|x86
10 | EndGlobalSection
11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
12 | {DA8E3C95-F0E8-49C5-BC05-43B42BE64960}.Debug|x86.ActiveCfg = Debug|x86
13 | {DA8E3C95-F0E8-49C5-BC05-43B42BE64960}.Debug|x86.Build.0 = Debug|x86
14 | {DA8E3C95-F0E8-49C5-BC05-43B42BE64960}.Release|x86.ActiveCfg = Release|x86
15 | {DA8E3C95-F0E8-49C5-BC05-43B42BE64960}.Release|x86.Build.0 = Release|x86
16 | EndGlobalSection
17 | GlobalSection(SolutionProperties) = preSolution
18 | HideSolutionNode = FALSE
19 | EndGlobalSection
20 | EndGlobal
21 |
--------------------------------------------------------------------------------
/FiverrBot/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.296
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace FiverrBot.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/FiverrBot/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("FiverrBot")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("FiverrBot")]
13 | [assembly: AssemblyCopyright("Copyright © 2013")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("4def6b71-09e1-435e-860d-7f2742a1a6a7")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | #################
2 | ## Eclipse
3 | #################
4 |
5 | *.pydevproject
6 | .project
7 | .metadata
8 | bin/
9 | tmp/
10 | *.tmp
11 | *.bak
12 | *.swp
13 | *~.nib
14 | local.properties
15 | .classpath
16 | .settings/
17 | .loadpath
18 |
19 | # External tool builders
20 | .externalToolBuilders/
21 |
22 | # Locally stored "Eclipse launch configurations"
23 | *.launch
24 |
25 | # CDT-specific
26 | .cproject
27 |
28 | # PDT-specific
29 | .buildpath
30 |
31 |
32 | #################
33 | ## Visual Studio
34 | #################
35 |
36 | ## Ignore Visual Studio temporary files, build results, and
37 | ## files generated by popular Visual Studio add-ons.
38 |
39 | # User-specific files
40 | *.suo
41 | *.user
42 | *.sln.docstates
43 |
44 | # Build results
45 | [Dd]ebug/
46 | [Rr]elease/
47 | *_i.c
48 | *_p.c
49 | *.ilk
50 | *.meta
51 | *.obj
52 | *.pch
53 | *.pdb
54 | *.pgc
55 | *.pgd
56 | *.rsp
57 | *.sbr
58 | *.tlb
59 | *.tli
60 | *.tlh
61 | *.tmp
62 | *.vspscc
63 | .builds
64 | *.dotCover
65 |
66 | ## TODO: If you have NuGet Package Restore enabled, uncomment this
67 | #packages/
68 |
69 | # Visual C++ cache files
70 | ipch/
71 | *.aps
72 | *.ncb
73 | *.opensdf
74 | *.sdf
75 |
76 | # Visual Studio profiler
77 | *.psess
78 | *.vsp
79 |
80 | # ReSharper is a .NET coding add-in
81 | _ReSharper*
82 |
83 | # Installshield output folder
84 | [Ee]xpress
85 |
86 | # DocProject is a documentation generator add-in
87 | DocProject/buildhelp/
88 | DocProject/Help/*.HxT
89 | DocProject/Help/*.HxC
90 | DocProject/Help/*.hhc
91 | DocProject/Help/*.hhk
92 | DocProject/Help/*.hhp
93 | DocProject/Help/Html2
94 | DocProject/Help/html
95 |
96 | # Click-Once directory
97 | publish
98 |
99 | # Others
100 | [Bb]in
101 | [Oo]bj
102 | sql
103 | TestResults
104 | *.Cache
105 | ClientBin
106 | stylecop.*
107 | ~$*
108 | *.dbmdl
109 | Generated_Code #added for RIA/Silverlight projects
110 |
111 | # Backup & report files from converting an old project file to a newer
112 | # Visual Studio version. Backup files are not needed, because we have git ;-)
113 | _UpgradeReport_Files/
114 | Backup*/
115 | UpgradeLog*.XML
116 |
117 |
118 |
119 | ############
120 | ## Windows
121 | ############
122 |
123 | # Windows image file caches
124 | Thumbs.db
125 |
126 | # Folder config file
127 | Desktop.ini
128 |
129 |
130 | #############
131 | ## Python
132 | #############
133 |
134 | *.py[co]
135 |
136 | # Packages
137 | *.egg
138 | *.egg-info
139 | dist
140 | build
141 | eggs
142 | parts
143 | bin
144 | var
145 | sdist
146 | develop-eggs
147 | .installed.cfg
148 |
149 | # Installer logs
150 | pip-log.txt
151 |
152 | # Unit test / coverage reports
153 | .coverage
154 | .tox
155 |
156 | #Translations
157 | *.mo
158 |
159 | #Mr Developer
160 | .mr.developer.cfg
161 |
162 | # Mac crap
163 | .DS_Store
164 |
--------------------------------------------------------------------------------
/FiverrBot/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.296
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace FiverrBot.Properties
12 | {
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Returns the cached ResourceManager instance used by this class.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FiverrBot.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Overrides the current thread's CurrentUICulture property for all
56 | /// resource lookups using this strongly typed resource class.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/FiverrBot/FiverrBot.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | x86
6 | 8.0.30703
7 | 2.0
8 | {DA8E3C95-F0E8-49C5-BC05-43B42BE64960}
9 | WinExe
10 | Properties
11 | FiverrBot
12 | FiverrBot
13 | v4.0
14 | Client
15 | 512
16 |
17 |
18 | x86
19 | true
20 | full
21 | false
22 | bin\Debug\
23 | DEBUG;TRACE
24 | prompt
25 | 4
26 |
27 |
28 | x86
29 | pdbonly
30 | true
31 | bin\Release\
32 | TRACE
33 | prompt
34 | 4
35 |
36 |
37 |
38 | False
39 | .\HtmlAgilityPack.dll
40 |
41 |
42 | False
43 | .\OpenPop.dll
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 | Form
59 |
60 |
61 | Form1.cs
62 |
63 |
64 |
65 |
66 |
67 |
68 | Form1.cs
69 |
70 |
71 | ResXFileCodeGenerator
72 | Resources.Designer.cs
73 | Designer
74 |
75 |
76 | True
77 | Resources.resx
78 |
79 |
80 | SettingsSingleFileGenerator
81 | Settings.Designer.cs
82 |
83 |
84 | True
85 | Settings.settings
86 | True
87 |
88 |
89 |
90 |
91 | PreserveNewest
92 |
93 |
94 | PreserveNewest
95 |
96 |
97 |
98 |
105 |
--------------------------------------------------------------------------------
/FiverrBot/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/FiverrBot/Form1.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 | 17, 17
122 |
123 |
--------------------------------------------------------------------------------
/FiverrBot/RandomPassword.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Security.Cryptography;
6 |
7 | namespace FiverrBot
8 | {
9 | ///////////////////////////////////////////////////////////////////////////////
10 | // SAMPLE: Generates random password, which complies with the strong password
11 | // rules and does not contain ambiguous characters.
12 | //
13 | // To run this sample, create a new Visual C# project using the Console
14 | // Application template and replace the contents of the Class1.cs file with
15 | // the code below.
16 | //
17 | // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
18 | // EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
19 | // WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
20 | //
21 | // Copyright (C) 2004 Obviex(TM). All rights reserved.
22 | //
23 |
24 |
25 | ///
26 | /// This class can generate random passwords, which do not include ambiguous
27 | /// characters, such as I, l, and 1. The generated password will be made of
28 | /// 7-bit ASCII symbols. Every four characters will include one lower case
29 | /// character, one upper case character, one number, and one special symbol
30 | /// (such as '%') in a random order. The password will always start with an
31 | /// alpha-numeric character; it will not start with a special symbol (we do
32 | /// this because some back-end systems do not like certain special
33 | /// characters in the first position).
34 | ///
35 | public class RandomPassword
36 | {
37 | // Define default min and max password lengths.
38 | private static int DEFAULT_MIN_PASSWORD_LENGTH = 8;
39 | private static int DEFAULT_MAX_PASSWORD_LENGTH = 10;
40 |
41 | // Define supported password characters divided into groups.
42 | // You can add (or remove) characters to (from) these groups.
43 | private static string PASSWORD_CHARS_LCASE = "abcdefgijkmnopqrstwxyz";
44 | private static string PASSWORD_CHARS_UCASE = "ABCDEFGHJKLMNPQRSTWXYZ";
45 | private static string PASSWORD_CHARS_NUMERIC = "23456789";
46 | private static string PASSWORD_CHARS_SPECIAL = "*$-+?_&=!%{}/";
47 |
48 | ///
49 | /// Generates a random password.
50 | ///
51 | ///
52 | /// Randomly generated password.
53 | ///
54 | ///
55 | /// The length of the generated password will be determined at
56 | /// random. It will be no shorter than the minimum default and
57 | /// no longer than maximum default.
58 | ///
59 | public static string Generate()
60 | {
61 | return Generate(DEFAULT_MIN_PASSWORD_LENGTH,
62 | DEFAULT_MAX_PASSWORD_LENGTH);
63 | }
64 |
65 | ///
66 | /// Generates a random password of the exact length.
67 | ///
68 | ///
69 | /// Exact password length.
70 | ///
71 | ///
72 | /// Randomly generated password.
73 | ///
74 | public static string Generate(int length)
75 | {
76 | return Generate(length, length);
77 | }
78 |
79 | ///
80 | /// Generates a random password.
81 | ///
82 | ///
83 | /// Minimum password length.
84 | ///
85 | ///
86 | /// Maximum password length.
87 | ///
88 | ///
89 | /// Randomly generated password.
90 | ///
91 | ///
92 | /// The length of the generated password will be determined at
93 | /// random and it will fall with the range determined by the
94 | /// function parameters.
95 | ///
96 | public static string Generate(int minLength,
97 | int maxLength)
98 | {
99 | // Make sure that input parameters are valid.
100 | if (minLength <= 0 || maxLength <= 0 || minLength > maxLength)
101 | return null;
102 |
103 | // Create a local array containing supported password characters
104 | // grouped by types. You can remove character groups from this
105 | // array, but doing so will weaken the password strength.
106 | char[][] charGroups = new char[][]
107 | {
108 | PASSWORD_CHARS_LCASE.ToCharArray(),
109 | PASSWORD_CHARS_UCASE.ToCharArray(),
110 | PASSWORD_CHARS_NUMERIC.ToCharArray(),
111 | //PASSWORD_CHARS_SPECIAL.ToCharArray()
112 | };
113 |
114 | // Use this array to track the number of unused characters in each
115 | // character group.
116 | int[] charsLeftInGroup = new int[charGroups.Length];
117 |
118 | // Initially, all characters in each group are not used.
119 | for (int i = 0; i < charsLeftInGroup.Length; i++)
120 | charsLeftInGroup[i] = charGroups[i].Length;
121 |
122 | // Use this array to track (iterate through) unused character groups.
123 | int[] leftGroupsOrder = new int[charGroups.Length];
124 |
125 | // Initially, all character groups are not used.
126 | for (int i = 0; i < leftGroupsOrder.Length; i++)
127 | leftGroupsOrder[i] = i;
128 |
129 | // Because we cannot use the default randomizer, which is based on the
130 | // current time (it will produce the same "random" number within a
131 | // second), we will use a random number generator to seed the
132 | // randomizer.
133 |
134 | // Use a 4-byte array to fill it with random bytes and convert it then
135 | // to an integer value.
136 | byte[] randomBytes = new byte[4];
137 |
138 | // Generate 4 random bytes.
139 | RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
140 | rng.GetBytes(randomBytes);
141 |
142 | // Convert 4 bytes into a 32-bit integer value.
143 | int seed = (randomBytes[0] & 0x7f) << 24 |
144 | randomBytes[1] << 16 |
145 | randomBytes[2] << 8 |
146 | randomBytes[3];
147 |
148 | // Now, this is real randomization.
149 | Random random = new Random(seed);
150 |
151 | // This array will hold password characters.
152 | char[] password = null;
153 |
154 | // Allocate appropriate memory for the password.
155 | if (minLength < maxLength)
156 | password = new char[random.Next(minLength, maxLength + 1)];
157 | else
158 | password = new char[minLength];
159 |
160 | // Index of the next character to be added to password.
161 | int nextCharIdx;
162 |
163 | // Index of the next character group to be processed.
164 | int nextGroupIdx;
165 |
166 | // Index which will be used to track not processed character groups.
167 | int nextLeftGroupsOrderIdx;
168 |
169 | // Index of the last non-processed character in a group.
170 | int lastCharIdx;
171 |
172 | // Index of the last non-processed group.
173 | int lastLeftGroupsOrderIdx = leftGroupsOrder.Length - 1;
174 |
175 | // Generate password characters one at a time.
176 | for (int i = 0; i < password.Length; i++)
177 | {
178 | // If only one character group remained unprocessed, process it;
179 | // otherwise, pick a random character group from the unprocessed
180 | // group list. To allow a special character to appear in the
181 | // first position, increment the second parameter of the Next
182 | // function call by one, i.e. lastLeftGroupsOrderIdx + 1.
183 | if (lastLeftGroupsOrderIdx == 0)
184 | nextLeftGroupsOrderIdx = 0;
185 | else
186 | nextLeftGroupsOrderIdx = random.Next(0,
187 | lastLeftGroupsOrderIdx);
188 |
189 | // Get the actual index of the character group, from which we will
190 | // pick the next character.
191 | nextGroupIdx = leftGroupsOrder[nextLeftGroupsOrderIdx];
192 |
193 | // Get the index of the last unprocessed characters in this group.
194 | lastCharIdx = charsLeftInGroup[nextGroupIdx] - 1;
195 |
196 | // If only one unprocessed character is left, pick it; otherwise,
197 | // get a random character from the unused character list.
198 | if (lastCharIdx == 0)
199 | nextCharIdx = 0;
200 | else
201 | nextCharIdx = random.Next(0, lastCharIdx + 1);
202 |
203 | // Add this character to the password.
204 | password[i] = charGroups[nextGroupIdx][nextCharIdx];
205 |
206 | // If we processed the last character in this group, start over.
207 | if (lastCharIdx == 0)
208 | charsLeftInGroup[nextGroupIdx] =
209 | charGroups[nextGroupIdx].Length;
210 | // There are more unprocessed characters left.
211 | else
212 | {
213 | // Swap processed character with the last unprocessed character
214 | // so that we don't pick it until we process all characters in
215 | // this group.
216 | if (lastCharIdx != nextCharIdx)
217 | {
218 | char temp = charGroups[nextGroupIdx][lastCharIdx];
219 | charGroups[nextGroupIdx][lastCharIdx] =
220 | charGroups[nextGroupIdx][nextCharIdx];
221 | charGroups[nextGroupIdx][nextCharIdx] = temp;
222 | }
223 | // Decrement the number of unprocessed characters in
224 | // this group.
225 | charsLeftInGroup[nextGroupIdx]--;
226 | }
227 |
228 | // If we processed the last group, start all over.
229 | if (lastLeftGroupsOrderIdx == 0)
230 | lastLeftGroupsOrderIdx = leftGroupsOrder.Length - 1;
231 | // There are more unprocessed groups left.
232 | else
233 | {
234 | // Swap processed group with the last unprocessed group
235 | // so that we don't pick it until we process all groups.
236 | if (lastLeftGroupsOrderIdx != nextLeftGroupsOrderIdx)
237 | {
238 | int temp = leftGroupsOrder[lastLeftGroupsOrderIdx];
239 | leftGroupsOrder[lastLeftGroupsOrderIdx] =
240 | leftGroupsOrder[nextLeftGroupsOrderIdx];
241 | leftGroupsOrder[nextLeftGroupsOrderIdx] = temp;
242 | }
243 | // Decrement the number of unprocessed groups.
244 | lastLeftGroupsOrderIdx--;
245 | }
246 | }
247 |
248 | // Convert password characters into a string and return the result.
249 | return new string(password);
250 | }
251 | }
252 |
253 |
254 | //
255 | // END OF FILE
256 | ///////////////////////////////////////////////////////////////////////////////
257 | }
258 |
--------------------------------------------------------------------------------
/FiverrBot/Form1.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Data;
5 | using System.Drawing;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Windows.Forms;
9 | using System.Net;
10 | using System.IO;
11 |
12 | //Some libs used
13 | using HtmlAgilityPack;
14 | using OpenPop;
15 |
16 | using System.Threading;
17 | using System.Collections;
18 | using System.Runtime.InteropServices;
19 | using System.Linq.Expressions;
20 | using System.Reflection;
21 | using OpenPop.Pop3;
22 | using OpenPop.Mime.Header;
23 | using System.Runtime.Serialization.Formatters.Binary;
24 |
25 | namespace FiverrBot
26 | {
27 | public partial class Form1 : Form
28 | {
29 | private Random random = new Random();
30 |
31 | private List usernames, emails, proxies, unusedemails, systemAccounts;
32 | private List accountsToCreate, verifiedAccountsList;
33 | private List fnames, lnames, genusernames;
34 |
35 | int createdAccounts = 0;
36 | int numThreads = 3;
37 | int threadsRunning = 0;
38 | int creatorThreadsRunning = 0;
39 | int verifiedAccounts = 0;
40 |
41 | //thread stuff
42 | private static List[] inputArray; //username, password, email
43 | private static List[] resultArray; //successful/failed, error message
44 | private static ManualResetEvent[] resetEvents;
45 |
46 | public Form1()
47 | {
48 | InitializeComponent();
49 |
50 | //load first names and last names into memory
51 | fnames = parser("firstnames.txt");
52 | lnames = parser("lastnames.txt");
53 |
54 | //Load system data and display it
55 | proxies = parser("systemproxies.txt");
56 | lblProxiesLoaded.Text = Convert.ToString(proxies.Count);
57 |
58 | //Initialize textbox watermarks
59 | TextBoxWatermarkExtensionMethod.SetWatermark(txtAddUsername, "Fiverr Username");
60 | TextBoxWatermarkExtensionMethod.SetWatermark(txtAddPassword, "Fiverr Password");
61 | TextBoxWatermarkExtensionMethod.SetWatermark(txtAddProxy, "Proxy (Optional)");
62 | TextBoxWatermarkExtensionMethod.SetWatermark(txtAddPort, "Port (Optional)");
63 | TextBoxWatermarkExtensionMethod.SetWatermark(txtAddProxyUsername, "Proxy Username (Optional)");
64 | TextBoxWatermarkExtensionMethod.SetWatermark(txtAddProxyPassword, "Proxy Password (Optional)");
65 | TextBoxWatermarkExtensionMethod.SetWatermark(txtProxyReuses, "Proxy Reuses");
66 |
67 | }
68 |
69 | //method to login if session is expired
70 | public void loginToFiverr(Hashtable account)
71 | {
72 |
73 | }
74 |
75 | //method to scrape niche usernames
76 | public void scrapeUsernames(string niche)
77 | {
78 | //to scrape gig links
79 | //