├── README.md ├── AssemblyInfoAttribute.cs ├── wyDay └── TurboActivate │ ├── TurboActivateException.cs │ ├── InternetException.cs │ ├── PkeyRevokedException.cs │ ├── NotActivatedException.cs │ ├── TrialExtExpiredException.cs │ ├── TrialExtUsedException.cs │ ├── GUIDMismatchException.cs │ ├── TurboFloatKeyException.cs │ ├── InvalidProductKeyException.cs │ ├── InvalidArgsException.cs │ ├── PkeyMaxUsedException.cs │ ├── COMException.cs │ ├── ProductDetailsException.cs │ ├── IsGenuineResult.cs │ ├── NoMoreDeactivationsException.cs │ ├── PermissionException.cs │ ├── InvalidFlagsException.cs │ ├── ExtraDataTooLongException.cs │ ├── VirtualMachineException.cs │ └── DateTimeException.cs ├── ShouldStop.cs ├── SiteType.cs ├── NotificationService.cs ├── NikeToken.cs ├── Properties └── AssemblyInfo.cs ├── SizeDescription.cs ├── ScheduleForm.cs ├── NikeWaitIntervals.cs ├── Logger.cs ├── NotificationExtensions.cs ├── CreditCardProfilesForm.cs ├── LinkScheduler.cs ├── CheckoutInfo.cs ├── AddedProduct.cs ├── SnkrsCalendar.cs ├── LinkScheduler.Designer.cs ├── SnkrsItem.cs ├── ScheduleForm.Designer.cs ├── AddedProductsForm.cs ├── DataForm1.cs ├── CreditCardProfilesForm.Designer.cs ├── ProductDetails.cs ├── AdvancedSettingsForm.cs ├── AtcItem.cs ├── DataForm1.resx ├── LinkScheduler.resx ├── ScheduleForm.resx ├── SnkrsCalendar.resx ├── AccountDetailsForm.resx ├── AddedProductsForm.resx ├── CheckoutProfile.resx ├── CreateAccountsForm.resx ├── AdvancedSettingsForm.resx ├── CreditCardProfilesForm.resx ├── AccountDetailsForm.cs ├── Program.cs ├── Class1.cs ├── CreateAccountsForm.cs ├── SnkrsCalendar.Designer.cs ├── CreditCardProfile.cs ├── DataForm1.Designer.cs ├── Class0.cs ├── AddedProductsForm.Designer.cs └── CheckoutProfile.cs /README.md: -------------------------------------------------------------------------------- 1 | Source Code of BNB 2 | Site: https://www.betternikebot.com/ 3 | My group: https://vk.com/retail_plus 4 | -------------------------------------------------------------------------------- /AssemblyInfoAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace ns0 4 | { 5 | // Token: 0x02000005 RID: 5 6 | internal class AssemblyInfoAttribute : Attribute 7 | { 8 | // Token: 0x0600001F RID: 31 RVA: 0x00002166 File Offset: 0x00000366 9 | public AssemblyInfoAttribute(string str) 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/TurboActivateException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x0200005F RID: 95 6 | public class TurboActivateException : Exception 7 | { 8 | // Token: 0x06000341 RID: 833 RVA: 0x0000386F File Offset: 0x00001A6F 9 | public TurboActivateException(string message) : base(message) 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/InternetException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x02000063 RID: 99 6 | public class InternetException : TurboActivateException 7 | { 8 | // Token: 0x06000345 RID: 837 RVA: 0x0000389F File Offset: 0x00001A9F 9 | public InternetException() : base("Connection to the server failed.") 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/PkeyRevokedException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x02000061 RID: 97 6 | public class PkeyRevokedException : TurboActivateException 7 | { 8 | // Token: 0x06000343 RID: 835 RVA: 0x00003885 File Offset: 0x00001A85 9 | public PkeyRevokedException() : base("The product key has been revoked.") 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/NotActivatedException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x02000065 RID: 101 6 | public class NotActivatedException : TurboActivateException 7 | { 8 | // Token: 0x06000347 RID: 839 RVA: 0x000038B9 File Offset: 0x00001AB9 9 | public NotActivatedException() : base("The product needs to be activated.") 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/TrialExtExpiredException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x02000069 RID: 105 6 | public class TrialExtExpiredException : TurboActivateException 7 | { 8 | // Token: 0x0600034B RID: 843 RVA: 0x000038ED File Offset: 0x00001AED 9 | public TrialExtExpiredException() : base("The trial extension has expired.") 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/TrialExtUsedException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x02000068 RID: 104 6 | public class TrialExtUsedException : TurboActivateException 7 | { 8 | // Token: 0x0600034A RID: 842 RVA: 0x000038E0 File Offset: 0x00001AE0 9 | public TrialExtUsedException() : base("The trial extension has already been used.") 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/GUIDMismatchException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x02000066 RID: 102 6 | public class GUIDMismatchException : TurboActivateException 7 | { 8 | // Token: 0x06000348 RID: 840 RVA: 0x000038C6 File Offset: 0x00001AC6 9 | public GUIDMismatchException() : base("The product details file \"TurboActivate.dat\" is corrupt.") 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/TurboFloatKeyException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x02000070 RID: 112 6 | public class TurboFloatKeyException : TurboActivateException 7 | { 8 | // Token: 0x06000352 RID: 850 RVA: 0x00003952 File Offset: 0x00001B52 9 | public TurboFloatKeyException() : base("The product key used is for TurboFloat, not TurboActivate.") 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/InvalidProductKeyException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x02000064 RID: 100 6 | public class InvalidProductKeyException : TurboActivateException 7 | { 8 | // Token: 0x06000346 RID: 838 RVA: 0x000038AC File Offset: 0x00001AAC 9 | public InvalidProductKeyException() : base("The product key is invalid or there's no product key.") 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/InvalidArgsException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x0200006F RID: 111 6 | public class InvalidArgsException : TurboActivateException 7 | { 8 | // Token: 0x06000351 RID: 849 RVA: 0x00003945 File Offset: 0x00001B45 9 | public InvalidArgsException() : base("The arguments passed to the function are invalid. Double check your logic.") 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/PkeyMaxUsedException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x02000062 RID: 98 6 | public class PkeyMaxUsedException : TurboActivateException 7 | { 8 | // Token: 0x06000344 RID: 836 RVA: 0x00003892 File Offset: 0x00001A92 9 | public PkeyMaxUsedException() : base("The product key has already been activated with the maximum number of computers.") 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/COMException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x02000060 RID: 96 6 | public class COMException : TurboActivateException 7 | { 8 | // Token: 0x06000342 RID: 834 RVA: 0x00003878 File Offset: 0x00001A78 9 | public COMException() : base("CoInitializeEx failed. Re-enable Windows Management Instrumentation (WMI) service. Contact your system admin for more information.") 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/ProductDetailsException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x02000067 RID: 103 6 | public class ProductDetailsException : TurboActivateException 7 | { 8 | // Token: 0x06000349 RID: 841 RVA: 0x000038D3 File Offset: 0x00001AD3 9 | public ProductDetailsException() : base("The product details file \"TurboActivate.dat\" failed to load. It's either missing or corrupt.") 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/IsGenuineResult.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x02000072 RID: 114 6 | public enum IsGenuineResult 7 | { 8 | // Token: 0x0400032D RID: 813 9 | Genuine, 10 | // Token: 0x0400032E RID: 814 11 | GenuineFeaturesChanged, 12 | // Token: 0x0400032F RID: 815 13 | NotGenuine, 14 | // Token: 0x04000330 RID: 816 15 | NotGenuineInVM, 16 | // Token: 0x04000331 RID: 817 17 | InternetError 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/NoMoreDeactivationsException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x02000071 RID: 113 6 | public class NoMoreDeactivationsException : TurboActivateException 7 | { 8 | // Token: 0x06000353 RID: 851 RVA: 0x0000395F File Offset: 0x00001B5F 9 | public NoMoreDeactivationsException() : base("No more deactivations are allowed for the product key. This product is still activated on this computer.") 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/PermissionException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x0200006B RID: 107 6 | public class PermissionException : TurboActivateException 7 | { 8 | // Token: 0x0600034D RID: 845 RVA: 0x00003911 File Offset: 0x00001B11 9 | public PermissionException() : base("Insufficient system permission. Either start your process as an admin / elevated user or call the function again with the TA_USER flag.") 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/InvalidFlagsException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x0200006C RID: 108 6 | public class InvalidFlagsException : TurboActivateException 7 | { 8 | // Token: 0x0600034E RID: 846 RVA: 0x0000391E File Offset: 0x00001B1E 9 | public InvalidFlagsException() : base("The flags you passed to the function were invalid (or missing). Flags like \"TA_SYSTEM\" and \"TA_USER\" are mutually exclusive -- you can only use one or the other.") 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/ExtraDataTooLongException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x0200006E RID: 110 6 | public class ExtraDataTooLongException : TurboActivateException 7 | { 8 | // Token: 0x06000350 RID: 848 RVA: 0x00003938 File Offset: 0x00001B38 9 | public ExtraDataTooLongException() : base("The \"extra data\" was too long. You're limited to 255 UTF-8 characters. Or, on Windows, a Unicode string that will convert into 255 UTF-8 characters or less.") 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/VirtualMachineException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x0200006D RID: 109 6 | public class VirtualMachineException : TurboActivateException 7 | { 8 | // Token: 0x0600034F RID: 847 RVA: 0x0000392B File Offset: 0x00001B2B 9 | public VirtualMachineException() : base("The function failed because this instance of your program is running inside a virtual machine / hypervisor and you've prevented the function from running inside a VM.") 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /ShouldStop.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Better_Nike_Bot 4 | { 5 | // Token: 0x02000050 RID: 80 6 | public class ShouldStop 7 | { 8 | // Token: 0x060002D1 RID: 721 RVA: 0x000035AF File Offset: 0x000017AF 9 | public ShouldStop() 10 | { 11 | this.Value = false; 12 | } 13 | 14 | // Token: 0x17000099 RID: 153 15 | // (get) Token: 0x060002D2 RID: 722 RVA: 0x000035BE File Offset: 0x000017BE 16 | // (set) Token: 0x060002D3 RID: 723 RVA: 0x000035C6 File Offset: 0x000017C6 17 | public bool Value { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /wyDay/TurboActivate/DateTimeException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace wyDay.TurboActivate 4 | { 5 | // Token: 0x0200006A RID: 106 6 | public class DateTimeException : TurboActivateException 7 | { 8 | // Token: 0x0600034C RID: 844 RVA: 0x000038FA File Offset: 0x00001AFA 9 | public DateTimeException(bool either) : base(either ? "Either the activation response file has expired or your date and time settings are incorrect. Fix your date and time settings, restart your computer, and try to activate again." : "Failed because your system date and time settings are incorrect. Fix your date and time settings, restart your computer, and try to activate again.") 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /SiteType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Better_Nike_Bot 4 | { 5 | // Token: 0x0200002B RID: 43 6 | public enum SiteType 7 | { 8 | // Token: 0x040001B2 RID: 434 9 | NikeUS, 10 | // Token: 0x040001B3 RID: 435 11 | NikeUK, 12 | // Token: 0x040001B4 RID: 436 13 | NikeCN, 14 | // Token: 0x040001B5 RID: 437 15 | NikeJP, 16 | // Token: 0x040001B6 RID: 438 17 | NikeFR, 18 | // Token: 0x040001B7 RID: 439 19 | NikeDE, 20 | // Token: 0x040001B8 RID: 440 21 | NikeAU, 22 | // Token: 0x040001B9 RID: 441 23 | NikeIT, 24 | // Token: 0x040001BA RID: 442 25 | NikePL, 26 | // Token: 0x040001BB RID: 443 27 | NikeCA, 28 | // Token: 0x040001BC RID: 444 29 | NikeNL, 30 | // Token: 0x040001BD RID: 445 31 | NikeES, 32 | // Token: 0x040001BE RID: 446 33 | NikeSE, 34 | // Token: 0x040001BF RID: 447 35 | NikeDK 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /NotificationService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Better_Nike_Bot 4 | { 5 | // Token: 0x02000057 RID: 87 6 | public class NotificationService 7 | { 8 | // Token: 0x06000304 RID: 772 RVA: 0x000037FB File Offset: 0x000019FB 9 | public NotificationService(string carrier, string emailSuffix) 10 | { 11 | this.Carrier = carrier; 12 | this.EmailSuffix = emailSuffix; 13 | } 14 | 15 | // Token: 0x170000A7 RID: 167 16 | // (get) Token: 0x06000305 RID: 773 RVA: 0x00003811 File Offset: 0x00001A11 17 | // (set) Token: 0x06000306 RID: 774 RVA: 0x00003819 File Offset: 0x00001A19 18 | public string Carrier { get; set; } 19 | 20 | // Token: 0x170000A8 RID: 168 21 | // (get) Token: 0x06000307 RID: 775 RVA: 0x00003822 File Offset: 0x00001A22 22 | // (set) Token: 0x06000308 RID: 776 RVA: 0x0000382A File Offset: 0x00001A2A 23 | public string EmailSuffix { get; set; } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /NikeToken.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Newtonsoft.Json; 3 | 4 | namespace Better_Nike_Bot 5 | { 6 | // Token: 0x02000019 RID: 25 7 | public class NikeToken 8 | { 9 | // Token: 0x1700004B RID: 75 10 | // (get) Token: 0x060000FB RID: 251 RVA: 0x00002972 File Offset: 0x00000B72 11 | // (set) Token: 0x060000FC RID: 252 RVA: 0x0000297A File Offset: 0x00000B7A 12 | [JsonProperty("access_token")] 13 | public string AccessToken { get; set; } 14 | 15 | // Token: 0x1700004C RID: 76 16 | // (get) Token: 0x060000FD RID: 253 RVA: 0x00002983 File Offset: 0x00000B83 17 | // (set) Token: 0x060000FE RID: 254 RVA: 0x0000298B File Offset: 0x00000B8B 18 | [JsonProperty("refresh_token")] 19 | public string RefreshToken { get; set; } 20 | 21 | // Token: 0x1700004D RID: 77 22 | // (get) Token: 0x060000FF RID: 255 RVA: 0x00002994 File Offset: 0x00000B94 23 | // (set) Token: 0x06000100 RID: 256 RVA: 0x0000299C File Offset: 0x00000B9C 24 | public long Timestamp { get; set; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | using System.Reflection; 4 | using System.Runtime.CompilerServices; 5 | using System.Runtime.InteropServices; 6 | using System.Runtime.Versioning; 7 | using System.Security; 8 | using System.Security.Permissions; 9 | using ns0; 10 | 11 | [assembly: AssemblyVersion("1.7.0.0")] 12 | [assembly: AssemblyInfo("")] 13 | [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] 14 | [assembly: AssemblyFileVersion("1.7.0.0")] 15 | [assembly: Guid("c454d2d2-319e-43dd-8470-909894aaa1d6")] 16 | [assembly: ComVisible(false)] 17 | [assembly: AssemblyTrademark("")] 18 | [assembly: AssemblyTitle("Better Nike Bot")] 19 | [assembly: AssemblyProduct("Better Nike Bot")] 20 | [assembly: AssemblyCompany("")] 21 | [assembly: AssemblyConfiguration("")] 22 | [assembly: AssemblyDescription("")] 23 | [assembly: CompilationRelaxations(8)] 24 | [assembly: AssemblyCopyright("Copyright © 2014")] 25 | [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] 26 | [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] 27 | -------------------------------------------------------------------------------- /SizeDescription.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Better_Nike_Bot 4 | { 5 | // Token: 0x02000056 RID: 86 6 | public class SizeDescription 7 | { 8 | // Token: 0x060002FD RID: 765 RVA: 0x000037AB File Offset: 0x000019AB 9 | public SizeDescription(string sizeInCm, string nativeSize, SiteType[] siteType) 10 | { 11 | this.SizeInCm = sizeInCm; 12 | this.NativeSize = nativeSize; 13 | this.SiteType = siteType; 14 | } 15 | 16 | // Token: 0x170000A4 RID: 164 17 | // (get) Token: 0x060002FE RID: 766 RVA: 0x000037C8 File Offset: 0x000019C8 18 | // (set) Token: 0x060002FF RID: 767 RVA: 0x000037D0 File Offset: 0x000019D0 19 | public string SizeInCm { get; set; } 20 | 21 | // Token: 0x170000A5 RID: 165 22 | // (get) Token: 0x06000300 RID: 768 RVA: 0x000037D9 File Offset: 0x000019D9 23 | // (set) Token: 0x06000301 RID: 769 RVA: 0x000037E1 File Offset: 0x000019E1 24 | public string NativeSize { get; set; } 25 | 26 | // Token: 0x170000A6 RID: 166 27 | // (get) Token: 0x06000302 RID: 770 RVA: 0x000037EA File Offset: 0x000019EA 28 | // (set) Token: 0x06000303 RID: 771 RVA: 0x000037F2 File Offset: 0x000019F2 29 | public SiteType[] SiteType { get; set; } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /ScheduleForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Windows.Forms; 5 | using IMLokesh.Extensions; 6 | 7 | namespace Better_Nike_Bot 8 | { 9 | // Token: 0x0200001B RID: 27 10 | public partial class ScheduleForm : Form 11 | { 12 | // Token: 0x06000108 RID: 264 RVA: 0x000029A5 File Offset: 0x00000BA5 13 | public ScheduleForm(Account acc = null) 14 | { 15 | this.InitializeComponent(); 16 | this.dateTimePicker1.Value = DateTime.Now; 17 | this.dateTimePicker1.CustomFormat = "MMMM dd, yyyy hh:mm:ss tt"; 18 | } 19 | 20 | // Token: 0x1700004E RID: 78 21 | // (get) Token: 0x06000109 RID: 265 RVA: 0x000029D3 File Offset: 0x00000BD3 22 | // (set) Token: 0x0600010A RID: 266 RVA: 0x000029DB File Offset: 0x00000BDB 23 | public DateTime DateTime { get; set; } 24 | 25 | // Token: 0x0600010B RID: 267 RVA: 0x00013C2C File Offset: 0x00011E2C 26 | private void buttonSave_Click(object sender, EventArgs e) 27 | { 28 | try 29 | { 30 | this.DateTime = this.dateTimePicker1.Value; 31 | } 32 | catch (Exception ex) 33 | { 34 | ex.Message.Show(MessageBoxIcon.Hand, "", MessageBoxButtons.OK); 35 | return; 36 | } 37 | base.DialogResult = DialogResult.OK; 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /NikeWaitIntervals.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using IMLokesh.RandomUtility; 3 | 4 | namespace Better_Nike_Bot 5 | { 6 | // Token: 0x0200004E RID: 78 7 | public static class NikeWaitIntervals 8 | { 9 | // Token: 0x040002D1 RID: 721 10 | public static int RetryAtc = 1000; 11 | 12 | // Token: 0x040002D2 RID: 722 13 | public static int RetryAtcFailure = 1100; 14 | 15 | // Token: 0x040002D3 RID: 723 16 | public static int RetryAtcFailureTimer = 900; 17 | 18 | // Token: 0x040002D4 RID: 724 19 | public static int TimeoutRetryAtc = 2200; 20 | 21 | // Token: 0x040002D5 RID: 725 22 | public static int WaitAtc = 2000; 23 | 24 | // Token: 0x040002D6 RID: 726 25 | public static int RetrySolveCaptcha = 300; 26 | 27 | // Token: 0x040002D7 RID: 727 28 | public static int RetryGetProductDetails = RandomHelper.RandomInt(1000, 1500); 29 | 30 | // Token: 0x040002D8 RID: 728 31 | public static int RetryGetProductDetailsTimer = RandomHelper.RandomInt(1000, 1150); 32 | 33 | // Token: 0x040002D9 RID: 729 34 | public static int Monitor = RandomHelper.RandomInt(1000, 1500); 35 | 36 | // Token: 0x040002DA RID: 730 37 | public static int MonitorTimer = RandomHelper.RandomInt(500, 1000); 38 | 39 | // Token: 0x040002DB RID: 731 40 | public static int RetrySoldOut = 3000; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Logger.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using IMLokesh.Extensions; 4 | using IMLokesh.ThreadUtility; 5 | 6 | namespace Better_Nike_Bot 7 | { 8 | // Token: 0x02000012 RID: 18 9 | internal static class Logger 10 | { 11 | // Token: 0x060000B2 RID: 178 RVA: 0x0000BC80 File Offset: 0x00009E80 12 | public static void Log(object msg, bool includeDate = true, bool onlyLogIf = true) 13 | { 14 | string text = msg.ToString(); 15 | text = (includeDate ? "{0} - {1}".With(new object[] 16 | { 17 | DateTime.Now.ToString(Logger.DateFormat), 18 | text 19 | }) : text); 20 | lock (Logger.ObjectLock) 21 | { 22 | Logger.Logs.Add(text); 23 | Logger.Count++; 24 | } 25 | } 26 | 27 | // Token: 0x040000CF RID: 207 28 | public static object ObjectLock = new object(); 29 | 30 | // Token: 0x040000D0 RID: 208 31 | public static List Logs = new List(); 32 | 33 | // Token: 0x040000D1 RID: 209 34 | public static string DateFormat = "dd-MMM-yy h:m:s.FFFF tt"; 35 | 36 | // Token: 0x040000D2 RID: 210 37 | public static int Count = 0; 38 | 39 | // Token: 0x040000D3 RID: 211 40 | public static ConcurrentFile LogFile = new ConcurrentFile("bnb_log.txt"); 41 | 42 | // Token: 0x040000D4 RID: 212 43 | public static bool IsPaused = false; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /NotificationExtensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using IMLokesh.Extensions; 3 | 4 | namespace Better_Nike_Bot 5 | { 6 | // Token: 0x0200002A RID: 42 7 | public static class NotificationExtensions 8 | { 9 | // Token: 0x060001EF RID: 495 RVA: 0x00022014 File Offset: 0x00020214 10 | public static string ReplacePlaceholders(this string str, AtcItem item) 11 | { 12 | if (item.IsNullOrDefault()) 13 | { 14 | item = new AtcItem(new Account("admin@betternikebot.com", "pass", "10", "", "", "", "", "", "", "", null, false), "http://store.nike.com/us/en_us/pd/zoom-field-general-training-shoe/pid-1546292/pgid-10266634", "10") 15 | { 16 | Details = new ProductDetails 17 | { 18 | Line1 = "Nike Zoom Field General (Ohio State)", 19 | Line2 = "Men's Training Shoe", 20 | Price = "130.0", 21 | ProductImage = "http://images.nike.com/is/image/DotCom/THN_PS/Nike-Zoom-Field-General-Ohio-State-Mens-Training-Shoe-654859_061.jpg?hei=620&wid=620&fmt=png", 22 | Size = "10", 23 | StyleCode = "654859-061" 24 | } 25 | }; 26 | } 27 | return str.ReplaceStringArray(NotificationSettings.AvailableFields, new string[] 28 | { 29 | item.Account.EmailAddress + (Form1.SendPassword ? ", password: {0}".With(new object[] 30 | { 31 | item.Account.Password 32 | }) : ""), 33 | item.SnkrsBuyUrl.IsNullOrWhiteSpace() ? NikeUrls.NikeCart : item.SnkrsBuyUrl, 34 | item.Details.Line2, 35 | item.Details.ProductImage, 36 | item.Url, 37 | item.Details.Line1, 38 | item.Details.Price, 39 | item.Details.Size, 40 | item.Details.StyleCode, 41 | NotificationSettings.ServiceLink, 42 | NotificationSettings.ServiceLogoImage, 43 | NotificationSettings.ServiceName, 44 | NotificationSettings.ServiceTwitterHandle 45 | }); 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /CreditCardProfilesForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.ComponentModel; 4 | using System.Drawing; 5 | using System.Windows.Forms; 6 | using BrightIdeasSoftware; 7 | 8 | namespace Better_Nike_Bot 9 | { 10 | // Token: 0x0200000F RID: 15 11 | public partial class CreditCardProfilesForm : Form 12 | { 13 | // Token: 0x06000097 RID: 151 RVA: 0x00002579 File Offset: 0x00000779 14 | public CreditCardProfilesForm() 15 | { 16 | this.InitializeComponent(); 17 | base.CenterToParent(); 18 | this.objectListView1.SetObjects(Form1.CreditCardProfiles); 19 | this.RefreshTable(); 20 | } 21 | 22 | // Token: 0x06000098 RID: 152 RVA: 0x000025A3 File Offset: 0x000007A3 23 | private void buttonAdd_Click(object sender, EventArgs e) 24 | { 25 | new CheckoutProfile(null).ShowDialog(); 26 | this.RefreshTable(); 27 | } 28 | 29 | // Token: 0x06000099 RID: 153 RVA: 0x000025B7 File Offset: 0x000007B7 30 | private void RefreshTable() 31 | { 32 | this.objectListView1.BuildList(); 33 | this.olvColumn1.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize); 34 | this.objectListView1.RebuildColumns(); 35 | } 36 | 37 | // Token: 0x0600009A RID: 154 RVA: 0x0000B100 File Offset: 0x00009300 38 | private void buttonEdit_Click(object sender, EventArgs e) 39 | { 40 | CreditCardProfile creditCardProfile = (this.objectListView1.SelectedObjects.Count > 0) ? ((CreditCardProfile)this.objectListView1.SelectedObjects[0]) : null; 41 | if (creditCardProfile != null) 42 | { 43 | new CheckoutProfile(creditCardProfile).ShowDialog(); 44 | this.RefreshTable(); 45 | } 46 | } 47 | 48 | // Token: 0x0600009B RID: 155 RVA: 0x0000B150 File Offset: 0x00009350 49 | private void buttonRemove_Click(object sender, EventArgs e) 50 | { 51 | IList selectedObjects = this.objectListView1.SelectedObjects; 52 | if (selectedObjects.Count == 0) 53 | { 54 | return; 55 | } 56 | foreach (object obj in selectedObjects) 57 | { 58 | Form1.CreditCardProfiles.Remove((CreditCardProfile)obj); 59 | } 60 | this.RefreshTable(); 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /LinkScheduler.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.Windows.Forms; 8 | using IMLokesh.Extensions; 9 | 10 | namespace Better_Nike_Bot 11 | { 12 | // Token: 0x02000026 RID: 38 13 | public partial class LinkScheduler : Form 14 | { 15 | // Token: 0x060001CF RID: 463 RVA: 0x00002FBA File Offset: 0x000011BA 16 | public LinkScheduler() 17 | { 18 | this.InitializeComponent(); 19 | } 20 | 21 | // Token: 0x060001D0 RID: 464 RVA: 0x00020B64 File Offset: 0x0001ED64 22 | private void LinkScheduler_Load(object sender, EventArgs e) 23 | { 24 | base.CenterToParent(); 25 | this.dataGridView1.AllowUserToResizeRows = false; 26 | this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; 27 | this.dataGridView1.BackgroundColor = SystemColors.ButtonFace; 28 | this.dataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; 29 | this._table = new DataTable("Links"); 30 | this._table.Columns.Add(new DataColumn("Link", typeof(string))); 31 | this._table.Columns.Add(new DataColumn("DateTime", typeof(DateTime))); 32 | foreach (MonitorLink monitorLink in Form1.MonitorLinks) 33 | { 34 | this._table.Rows.Add(new object[] 35 | { 36 | monitorLink.Link, 37 | monitorLink.StartTime 38 | }); 39 | } 40 | this.dataGridView1.DataSource = this._table; 41 | this.dataGridView1.Columns[1].DefaultCellStyle.Format = "G"; 42 | } 43 | 44 | // Token: 0x060001D1 RID: 465 RVA: 0x00020CA4 File Offset: 0x0001EEA4 45 | private void buttonSave_Click(object sender, EventArgs e) 46 | { 47 | foreach (DataRow dataRow in this._table.Select()) 48 | { 49 | foreach (MonitorLink monitorLink3 in Form1.MonitorLinks) 50 | { 51 | if (dataRow[0].ToString() == monitorLink3.Link) 52 | { 53 | monitorLink3.StartTime = (DateTime)dataRow[1]; 54 | } 55 | } 56 | } 57 | using (List.Enumerator enumerator2 = Form1.MonitorLinks.GetEnumerator()) 58 | { 59 | while (enumerator2.MoveNext()) 60 | { 61 | MonitorLink monitorLink = enumerator2.Current; 62 | MonitorLink monitorLink2 = Form1.MonitorLinkCache.FirstOrDefault((MonitorLink l) => l.Link == monitorLink.Link); 63 | if (monitorLink2.IsNotNull()) 64 | { 65 | monitorLink2.StartTime = monitorLink.StartTime; 66 | } 67 | else 68 | { 69 | Form1.MonitorLinkCache.Add(new MonitorLink 70 | { 71 | StartTime = monitorLink.StartTime, 72 | Link = monitorLink.Link 73 | }); 74 | } 75 | } 76 | } 77 | base.DialogResult = DialogResult.OK; 78 | } 79 | 80 | // Token: 0x040001A1 RID: 417 81 | private DataTable _table; 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /CheckoutInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using IMLokesh.Extensions; 3 | 4 | namespace Better_Nike_Bot 5 | { 6 | // Token: 0x02000007 RID: 7 7 | public class CheckoutInfo 8 | { 9 | // Token: 0x06000026 RID: 38 RVA: 0x00004BE0 File Offset: 0x00002DE0 10 | public CheckoutInfo(bool payPalCheckout, bool ccCheckout, string payPalEmailAddress, string payPalPassword, bool finalizeOrder, string ccProfile) 11 | { 12 | this.PayPalCheckout = payPalCheckout; 13 | this.CcCheckout = ccCheckout; 14 | this.FinalizeOrder = finalizeOrder; 15 | if (payPalCheckout && ccCheckout) 16 | { 17 | throw new Exception("You cannot select both paypal and cc checkout at the same time."); 18 | } 19 | if (this.PayPalCheckout && (payPalEmailAddress.IsNullOrWhiteSpace() || payPalPassword.IsNullOrWhiteSpace())) 20 | { 21 | throw new Exception("Please enter paypal email and password or deselect PP checkout."); 22 | } 23 | if (ccCheckout && ccProfile.IsNull()) 24 | { 25 | throw new Exception("Please select a CC Profile."); 26 | } 27 | if (this.PayPalCheckout && !payPalEmailAddress.Contains("@")) 28 | { 29 | throw new Exception("An email address must contain '@' symbol."); 30 | } 31 | this.PayPalEmailAddress = payPalEmailAddress; 32 | this.PayPalPassword = payPalPassword; 33 | this.CcProfile = ccProfile; 34 | } 35 | 36 | // Token: 0x17000009 RID: 9 37 | // (get) Token: 0x06000027 RID: 39 RVA: 0x000021BB File Offset: 0x000003BB 38 | // (set) Token: 0x06000028 RID: 40 RVA: 0x000021C3 File Offset: 0x000003C3 39 | public bool PayPalCheckout { get; set; } 40 | 41 | // Token: 0x1700000A RID: 10 42 | // (get) Token: 0x06000029 RID: 41 RVA: 0x000021CC File Offset: 0x000003CC 43 | // (set) Token: 0x0600002A RID: 42 RVA: 0x000021D4 File Offset: 0x000003D4 44 | public bool CcCheckout { get; set; } 45 | 46 | // Token: 0x1700000B RID: 11 47 | // (get) Token: 0x0600002B RID: 43 RVA: 0x000021DD File Offset: 0x000003DD 48 | // (set) Token: 0x0600002C RID: 44 RVA: 0x000021E5 File Offset: 0x000003E5 49 | public bool FinalizeOrder { get; set; } 50 | 51 | // Token: 0x1700000C RID: 12 52 | // (get) Token: 0x0600002D RID: 45 RVA: 0x000021EE File Offset: 0x000003EE 53 | // (set) Token: 0x0600002E RID: 46 RVA: 0x000021F6 File Offset: 0x000003F6 54 | public string PayPalEmailAddress { get; set; } 55 | 56 | // Token: 0x1700000D RID: 13 57 | // (get) Token: 0x0600002F RID: 47 RVA: 0x000021FF File Offset: 0x000003FF 58 | // (set) Token: 0x06000030 RID: 48 RVA: 0x00002207 File Offset: 0x00000407 59 | public string PayPalPassword { get; set; } 60 | 61 | // Token: 0x1700000E RID: 14 62 | // (get) Token: 0x06000031 RID: 49 RVA: 0x00002210 File Offset: 0x00000410 63 | // (set) Token: 0x06000032 RID: 50 RVA: 0x00002218 File Offset: 0x00000418 64 | public string CcProfile { get; set; } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /AddedProduct.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Better_Nike_Bot 4 | { 5 | // Token: 0x0200001C RID: 28 6 | public class AddedProduct 7 | { 8 | // Token: 0x0600010E RID: 270 RVA: 0x00013F30 File Offset: 0x00012130 9 | public AddedProduct(DateTime timeStamp, string productName, string styleCode, string productType, string emailAddress, string size, string pass, string snkrs, Account acc) 10 | { 11 | this.TimeStamp = timeStamp; 12 | this.ProductName = productName; 13 | this.StyleCode = styleCode; 14 | this.ProductType = productType; 15 | this.EmailAddress = emailAddress; 16 | this.Size = size; 17 | this.Password = pass; 18 | this.SnkrsUrl = snkrs; 19 | this.Account = acc; 20 | } 21 | 22 | // Token: 0x1700004F RID: 79 23 | // (get) Token: 0x0600010F RID: 271 RVA: 0x00002A03 File Offset: 0x00000C03 24 | // (set) Token: 0x06000110 RID: 272 RVA: 0x00002A0B File Offset: 0x00000C0B 25 | public DateTime TimeStamp { get; set; } 26 | 27 | // Token: 0x17000050 RID: 80 28 | // (get) Token: 0x06000111 RID: 273 RVA: 0x00002A14 File Offset: 0x00000C14 29 | // (set) Token: 0x06000112 RID: 274 RVA: 0x00002A1C File Offset: 0x00000C1C 30 | public string ProductName { get; set; } 31 | 32 | // Token: 0x17000051 RID: 81 33 | // (get) Token: 0x06000113 RID: 275 RVA: 0x00002A25 File Offset: 0x00000C25 34 | // (set) Token: 0x06000114 RID: 276 RVA: 0x00002A2D File Offset: 0x00000C2D 35 | public string StyleCode { get; set; } 36 | 37 | // Token: 0x17000052 RID: 82 38 | // (get) Token: 0x06000115 RID: 277 RVA: 0x00002A36 File Offset: 0x00000C36 39 | // (set) Token: 0x06000116 RID: 278 RVA: 0x00002A3E File Offset: 0x00000C3E 40 | public string ProductType { get; set; } 41 | 42 | // Token: 0x17000053 RID: 83 43 | // (get) Token: 0x06000117 RID: 279 RVA: 0x00002A47 File Offset: 0x00000C47 44 | // (set) Token: 0x06000118 RID: 280 RVA: 0x00002A4F File Offset: 0x00000C4F 45 | public string EmailAddress { get; set; } 46 | 47 | // Token: 0x17000054 RID: 84 48 | // (get) Token: 0x06000119 RID: 281 RVA: 0x00002A58 File Offset: 0x00000C58 49 | // (set) Token: 0x0600011A RID: 282 RVA: 0x00002A60 File Offset: 0x00000C60 50 | public string Size { get; set; } 51 | 52 | // Token: 0x17000055 RID: 85 53 | // (get) Token: 0x0600011B RID: 283 RVA: 0x00002A69 File Offset: 0x00000C69 54 | // (set) Token: 0x0600011C RID: 284 RVA: 0x00002A71 File Offset: 0x00000C71 55 | public string Password { get; set; } 56 | 57 | // Token: 0x17000056 RID: 86 58 | // (get) Token: 0x0600011D RID: 285 RVA: 0x00002A7A File Offset: 0x00000C7A 59 | // (set) Token: 0x0600011E RID: 286 RVA: 0x00002A82 File Offset: 0x00000C82 60 | public string SnkrsUrl { get; set; } 61 | 62 | // Token: 0x17000057 RID: 87 63 | // (get) Token: 0x0600011F RID: 287 RVA: 0x00002A8B File Offset: 0x00000C8B 64 | // (set) Token: 0x06000120 RID: 288 RVA: 0x00002A93 File Offset: 0x00000C93 65 | public Account Account { get; set; } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /SnkrsCalendar.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Linq; 5 | using System.Windows.Forms; 6 | using BrightIdeasSoftware; 7 | using IMLokesh.Extensions; 8 | 9 | namespace Better_Nike_Bot 10 | { 11 | // Token: 0x02000051 RID: 81 12 | public partial class SnkrsCalendar : Form 13 | { 14 | // Token: 0x060002D4 RID: 724 RVA: 0x000035CF File Offset: 0x000017CF 15 | public SnkrsCalendar(SnkrsItem[] snkrsItems) 16 | { 17 | this.InitializeComponent(); 18 | this._snkrsItems = snkrsItems; 19 | base.CenterToParent(); 20 | } 21 | 22 | // Token: 0x060002D5 RID: 725 RVA: 0x0002CD0C File Offset: 0x0002AF0C 23 | private void SnkrsCalendar_Load(object sender, EventArgs e) 24 | { 25 | this.Text = "SNKRS Calendar - {0} (Double click row to use)".With(new object[] 26 | { 27 | Form1.SiteType 28 | }); 29 | this.objectListView1.SetObjects(this._snkrsItems); 30 | } 31 | 32 | // Token: 0x060002D6 RID: 726 RVA: 0x0002CD50 File Offset: 0x0002AF50 33 | private void objectListView1_DoubleClick(object sender, EventArgs e) 34 | { 35 | SnkrsItem snkrsItem = (this.objectListView1.SelectedObjects.Count > 0) ? ((SnkrsItem)this.objectListView1.SelectedObjects[0]) : null; 36 | if (snkrsItem == null) 37 | { 38 | return; 39 | } 40 | using (AccountDetailsForm accountDetailsForm = new AccountDetailsForm(null, "", snkrsItem.StyleCode)) 41 | { 42 | DialogResult dialogResult = accountDetailsForm.ShowDialog(); 43 | if (dialogResult == DialogResult.OK) 44 | { 45 | Form1.DefaultForm.AddAccount(accountDetailsForm.Account); 46 | base.Close(); 47 | } 48 | } 49 | } 50 | 51 | // Token: 0x060002D7 RID: 727 RVA: 0x000035F5 File Offset: 0x000017F5 52 | private void textBoxSearch_Enter(object sender, EventArgs e) 53 | { 54 | if (this.textBoxSearch.Text == "Search products here...") 55 | { 56 | this.textBoxSearch.Text = ""; 57 | } 58 | } 59 | 60 | // Token: 0x060002D8 RID: 728 RVA: 0x0000361E File Offset: 0x0000181E 61 | private void textBoxSearch_Leave(object sender, EventArgs e) 62 | { 63 | if (this.textBoxSearch.Text.IsNullOrWhiteSpace()) 64 | { 65 | this.textBoxSearch.Text = "Search products here..."; 66 | } 67 | } 68 | 69 | // Token: 0x060002D9 RID: 729 RVA: 0x0002CDE0 File Offset: 0x0002AFE0 70 | private void textBoxSearch_TextChanged(object sender, EventArgs e) 71 | { 72 | this._filter = this.textBoxSearch.Text.ToLower(); 73 | if (!this._filter.IsNullOrWhiteSpace() && this._filter != "search products here...") 74 | { 75 | this.objectListView1.SetObjects(from s in this._snkrsItems 76 | where s.ToString().ToLower().Contains(this._filter) 77 | select s); 78 | return; 79 | } 80 | this.objectListView1.SetObjects(this._snkrsItems); 81 | } 82 | 83 | // Token: 0x040002E0 RID: 736 84 | private SnkrsItem[] _snkrsItems; 85 | 86 | // Token: 0x040002E1 RID: 737 87 | private string _filter = ""; 88 | } 89 | } 90 | -------------------------------------------------------------------------------- /LinkScheduler.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Better_Nike_Bot 2 | { 3 | // Token: 0x02000026 RID: 38 4 | public partial class LinkScheduler : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x060001D2 RID: 466 RVA: 0x00002FC8 File Offset: 0x000011C8 7 | protected override void Dispose(bool disposing) 8 | { 9 | if (disposing && this.components != null) 10 | { 11 | this.components.Dispose(); 12 | } 13 | base.Dispose(disposing); 14 | } 15 | 16 | // Token: 0x060001D3 RID: 467 RVA: 0x00020E0C File Offset: 0x0001F00C 17 | private void InitializeComponent() 18 | { 19 | this.dataGridView1 = new global::System.Windows.Forms.DataGridView(); 20 | this.buttonSave = new global::System.Windows.Forms.Button(); 21 | ((global::System.ComponentModel.ISupportInitialize)this.dataGridView1).BeginInit(); 22 | base.SuspendLayout(); 23 | this.dataGridView1.AllowUserToAddRows = false; 24 | this.dataGridView1.Anchor = (global::System.Windows.Forms.AnchorStyles.Top | global::System.Windows.Forms.AnchorStyles.Bottom | global::System.Windows.Forms.AnchorStyles.Left | global::System.Windows.Forms.AnchorStyles.Right); 25 | this.dataGridView1.ColumnHeadersHeightSizeMode = global::System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; 26 | this.dataGridView1.Location = new global::System.Drawing.Point(12, 12); 27 | this.dataGridView1.Name = "dataGridView1"; 28 | this.dataGridView1.Size = new global::System.Drawing.Size(308, 203); 29 | this.dataGridView1.TabIndex = 0; 30 | this.buttonSave.Anchor = (global::System.Windows.Forms.AnchorStyles.Bottom | global::System.Windows.Forms.AnchorStyles.Right); 31 | this.buttonSave.Location = new global::System.Drawing.Point(245, 224); 32 | this.buttonSave.Name = "buttonSave"; 33 | this.buttonSave.Size = new global::System.Drawing.Size(75, 23); 34 | this.buttonSave.TabIndex = 12; 35 | this.buttonSave.Text = "Save"; 36 | this.buttonSave.UseVisualStyleBackColor = true; 37 | this.buttonSave.Click += new global::System.EventHandler(this.buttonSave_Click); 38 | base.AcceptButton = this.buttonSave; 39 | base.AutoScaleDimensions = new global::System.Drawing.SizeF(6f, 13f); 40 | base.AutoScaleMode = global::System.Windows.Forms.AutoScaleMode.Font; 41 | base.ClientSize = new global::System.Drawing.Size(332, 259); 42 | base.Controls.Add(this.buttonSave); 43 | base.Controls.Add(this.dataGridView1); 44 | base.Name = "LinkScheduler"; 45 | this.Text = "Link Booster"; 46 | base.Load += new global::System.EventHandler(this.LinkScheduler_Load); 47 | ((global::System.ComponentModel.ISupportInitialize)this.dataGridView1).EndInit(); 48 | base.ResumeLayout(false); 49 | } 50 | 51 | // Token: 0x040001A2 RID: 418 52 | private global::System.ComponentModel.IContainer components; 53 | 54 | // Token: 0x040001A3 RID: 419 55 | private global::System.Windows.Forms.DataGridView dataGridView1; 56 | 57 | // Token: 0x040001A4 RID: 420 58 | private global::System.Windows.Forms.Button buttonSave; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /SnkrsItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using IMLokesh.Extensions; 3 | 4 | namespace Better_Nike_Bot 5 | { 6 | // Token: 0x02000052 RID: 82 7 | public class SnkrsItem 8 | { 9 | // Token: 0x060002DD RID: 733 RVA: 0x0002D4BC File Offset: 0x0002B6BC 10 | public SnkrsItem() 11 | { 12 | this.Name = "-"; 13 | this.DateTime = DateTime.MinValue.AddYears(10); 14 | this.StyleCode = "-"; 15 | this.Available = "-"; 16 | this.PublishType = "-"; 17 | this.SelectionEngine = "-"; 18 | this.HeatLevel = "-"; 19 | this.WaitLineEnabled = "-"; 20 | this.Link = "-"; 21 | } 22 | 23 | // Token: 0x1700009A RID: 154 24 | // (get) Token: 0x060002DE RID: 734 RVA: 0x00003679 File Offset: 0x00001879 25 | // (set) Token: 0x060002DF RID: 735 RVA: 0x00003681 File Offset: 0x00001881 26 | public string Name { get; set; } 27 | 28 | // Token: 0x1700009B RID: 155 29 | // (get) Token: 0x060002E0 RID: 736 RVA: 0x0000368A File Offset: 0x0000188A 30 | // (set) Token: 0x060002E1 RID: 737 RVA: 0x00003692 File Offset: 0x00001892 31 | public DateTime DateTime { get; set; } 32 | 33 | // Token: 0x1700009C RID: 156 34 | // (get) Token: 0x060002E2 RID: 738 RVA: 0x0002D53C File Offset: 0x0002B73C 35 | public string Date 36 | { 37 | get 38 | { 39 | return this.DateTime.ToString("MM/dd/yy hh:mm tt"); 40 | } 41 | } 42 | 43 | // Token: 0x1700009D RID: 157 44 | // (get) Token: 0x060002E3 RID: 739 RVA: 0x0000369B File Offset: 0x0000189B 45 | // (set) Token: 0x060002E4 RID: 740 RVA: 0x000036A3 File Offset: 0x000018A3 46 | public string StyleCode { get; set; } 47 | 48 | // Token: 0x1700009E RID: 158 49 | // (get) Token: 0x060002E5 RID: 741 RVA: 0x000036AC File Offset: 0x000018AC 50 | // (set) Token: 0x060002E6 RID: 742 RVA: 0x000036B4 File Offset: 0x000018B4 51 | public string Available { get; set; } 52 | 53 | // Token: 0x1700009F RID: 159 54 | // (get) Token: 0x060002E7 RID: 743 RVA: 0x000036BD File Offset: 0x000018BD 55 | // (set) Token: 0x060002E8 RID: 744 RVA: 0x000036C5 File Offset: 0x000018C5 56 | public string PublishType { get; set; } 57 | 58 | // Token: 0x170000A0 RID: 160 59 | // (get) Token: 0x060002E9 RID: 745 RVA: 0x000036CE File Offset: 0x000018CE 60 | // (set) Token: 0x060002EA RID: 746 RVA: 0x000036D6 File Offset: 0x000018D6 61 | public string SelectionEngine { get; set; } 62 | 63 | // Token: 0x170000A1 RID: 161 64 | // (get) Token: 0x060002EB RID: 747 RVA: 0x000036DF File Offset: 0x000018DF 65 | // (set) Token: 0x060002EC RID: 748 RVA: 0x000036E7 File Offset: 0x000018E7 66 | public string HeatLevel { get; set; } 67 | 68 | // Token: 0x170000A2 RID: 162 69 | // (get) Token: 0x060002ED RID: 749 RVA: 0x000036F0 File Offset: 0x000018F0 70 | // (set) Token: 0x060002EE RID: 750 RVA: 0x000036F8 File Offset: 0x000018F8 71 | public string WaitLineEnabled { get; set; } 72 | 73 | // Token: 0x170000A3 RID: 163 74 | // (get) Token: 0x060002EF RID: 751 RVA: 0x00003701 File Offset: 0x00001901 75 | // (set) Token: 0x060002F0 RID: 752 RVA: 0x00003709 File Offset: 0x00001909 76 | public string Link { get; set; } 77 | 78 | // Token: 0x060002F1 RID: 753 RVA: 0x0002D55C File Offset: 0x0002B75C 79 | public override string ToString() 80 | { 81 | return "{0} {1} {2} {3}".With(new object[] 82 | { 83 | this.Name, 84 | this.StyleCode, 85 | this.SelectionEngine, 86 | this.Date 87 | }); 88 | } 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /ScheduleForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Better_Nike_Bot 2 | { 3 | // Token: 0x0200001B RID: 27 4 | public partial class ScheduleForm : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x0600010C RID: 268 RVA: 0x000029E4 File Offset: 0x00000BE4 7 | protected override void Dispose(bool disposing) 8 | { 9 | if (disposing && this.components != null) 10 | { 11 | this.components.Dispose(); 12 | } 13 | base.Dispose(disposing); 14 | } 15 | 16 | // Token: 0x0600010D RID: 269 RVA: 0x00013C7C File Offset: 0x00011E7C 17 | private void InitializeComponent() 18 | { 19 | this.buttonSave = new global::System.Windows.Forms.Button(); 20 | this.label1 = new global::System.Windows.Forms.Label(); 21 | this.label2 = new global::System.Windows.Forms.Label(); 22 | this.dateTimePicker1 = new global::System.Windows.Forms.DateTimePicker(); 23 | base.SuspendLayout(); 24 | this.buttonSave.Anchor = (global::System.Windows.Forms.AnchorStyles.Bottom | global::System.Windows.Forms.AnchorStyles.Right); 25 | this.buttonSave.Location = new global::System.Drawing.Point(399, 61); 26 | this.buttonSave.Name = "buttonSave"; 27 | this.buttonSave.Size = new global::System.Drawing.Size(75, 23); 28 | this.buttonSave.TabIndex = 11; 29 | this.buttonSave.Text = "Save"; 30 | this.buttonSave.UseVisualStyleBackColor = true; 31 | this.buttonSave.Click += new global::System.EventHandler(this.buttonSave_Click); 32 | this.label1.AutoSize = true; 33 | this.label1.Location = new global::System.Drawing.Point(12, 9); 34 | this.label1.Name = "label1"; 35 | this.label1.Size = new global::System.Drawing.Size(462, 13); 36 | this.label1.TabIndex = 12; 37 | this.label1.Text = "Set the date and time when you want to start the bot. This follows your computer's date and time."; 38 | this.label2.AutoSize = true; 39 | this.label2.Location = new global::System.Drawing.Point(12, 33); 40 | this.label2.Name = "label2"; 41 | this.label2.Size = new global::System.Drawing.Size(301, 13); 42 | this.label2.TabIndex = 13; 43 | this.label2.Text = "Make sure you schedule for at least 5 minutes before the drop."; 44 | this.dateTimePicker1.Format = global::System.Windows.Forms.DateTimePickerFormat.Custom; 45 | this.dateTimePicker1.Location = new global::System.Drawing.Point(15, 63); 46 | this.dateTimePicker1.Name = "dateTimePicker1"; 47 | this.dateTimePicker1.Size = new global::System.Drawing.Size(200, 20); 48 | this.dateTimePicker1.TabIndex = 14; 49 | base.AcceptButton = this.buttonSave; 50 | base.AutoScaleDimensions = new global::System.Drawing.SizeF(6f, 13f); 51 | base.AutoScaleMode = global::System.Windows.Forms.AutoScaleMode.Font; 52 | base.ClientSize = new global::System.Drawing.Size(486, 96); 53 | base.Controls.Add(this.dateTimePicker1); 54 | base.Controls.Add(this.label2); 55 | base.Controls.Add(this.label1); 56 | base.Controls.Add(this.buttonSave); 57 | base.FormBorderStyle = global::System.Windows.Forms.FormBorderStyle.FixedToolWindow; 58 | this.MaximumSize = new global::System.Drawing.Size(1080, 400); 59 | this.MinimumSize = new global::System.Drawing.Size(200, 10); 60 | base.Name = "ScheduleForm"; 61 | this.Text = "Start Later"; 62 | base.ResumeLayout(false); 63 | base.PerformLayout(); 64 | } 65 | 66 | // Token: 0x04000101 RID: 257 67 | private global::System.ComponentModel.IContainer components; 68 | 69 | // Token: 0x04000102 RID: 258 70 | private global::System.Windows.Forms.Button buttonSave; 71 | 72 | // Token: 0x04000103 RID: 259 73 | private global::System.Windows.Forms.Label label1; 74 | 75 | // Token: 0x04000104 RID: 260 76 | private global::System.Windows.Forms.Label label2; 77 | 78 | // Token: 0x04000105 RID: 261 79 | private global::System.Windows.Forms.DateTimePicker dateTimePicker1; 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /AddedProductsForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.IO; 5 | using System.Linq; 6 | using System.Windows.Forms; 7 | using Better_Nike_Bot.Browser; 8 | using BrightIdeasSoftware; 9 | using IMLokesh.Extensions; 10 | using IMLokesh.FileUtility; 11 | using Newtonsoft.Json.Linq; 12 | 13 | namespace Better_Nike_Bot 14 | { 15 | // Token: 0x0200001F RID: 31 16 | public partial class AddedProductsForm : Form 17 | { 18 | // Token: 0x06000135 RID: 309 RVA: 0x00002B36 File Offset: 0x00000D36 19 | public AddedProductsForm() 20 | { 21 | this.InitializeComponent(); 22 | base.CenterToParent(); 23 | } 24 | 25 | // Token: 0x06000136 RID: 310 RVA: 0x00002B55 File Offset: 0x00000D55 26 | private void AddedProductsForm_Load(object sender, EventArgs e) 27 | { 28 | this.objectListView1.FullRowSelect = true; 29 | this.exportToJsonToolStripMenuItem.Visible = File.Exists(FileHelper.FileInSameDirectory("greeksneaks.json")); 30 | this.UpdateForm(); 31 | } 32 | 33 | // Token: 0x06000137 RID: 311 RVA: 0x00015A60 File Offset: 0x00013C60 34 | public void UpdateForm() 35 | { 36 | lock (this._lock) 37 | { 38 | try 39 | { 40 | this.objectListView1.SetObjects(Form1.AddedProducts.List); 41 | } 42 | catch (Exception value) 43 | { 44 | Console.WriteLine(value); 45 | } 46 | } 47 | } 48 | 49 | // Token: 0x06000138 RID: 312 RVA: 0x00002B83 File Offset: 0x00000D83 50 | private void AddedProductsForm_FormClosing(object sender, FormClosingEventArgs e) 51 | { 52 | base.Hide(); 53 | e.Cancel = true; 54 | } 55 | 56 | // Token: 0x06000139 RID: 313 RVA: 0x00015AC8 File Offset: 0x00013CC8 57 | private void copyUsernameToolStripMenuItem_Click(object sender, EventArgs e) 58 | { 59 | AddedProduct addedProduct = this.objectListView1.SelectedObjects.Cast().First(); 60 | Clipboard.SetText(addedProduct.EmailAddress); 61 | } 62 | 63 | // Token: 0x0600013A RID: 314 RVA: 0x00002B92 File Offset: 0x00000D92 64 | private void objectListView1_CellRightClick(object sender, CellRightClickEventArgs e) 65 | { 66 | if (e.RowIndex >= 0 && this.objectListView1.SelectedObjects.Count != 0) 67 | { 68 | e.MenuStrip = this.contextMenuStrip1; 69 | return; 70 | } 71 | } 72 | 73 | // Token: 0x0600013B RID: 315 RVA: 0x00015AF8 File Offset: 0x00013CF8 74 | private void copyPasswordToolStripMenuItem_Click(object sender, EventArgs e) 75 | { 76 | AddedProduct addedProduct = this.objectListView1.SelectedObjects.Cast().First(); 77 | Clipboard.SetText(addedProduct.Password); 78 | } 79 | 80 | // Token: 0x0600013C RID: 316 RVA: 0x00015B28 File Offset: 0x00013D28 81 | private void copySnkrsUrlToolStripMenuItem_Click(object sender, EventArgs e) 82 | { 83 | AddedProduct addedProduct = this.objectListView1.SelectedObjects.Cast().First(); 84 | Clipboard.SetText(addedProduct.SnkrsUrl); 85 | } 86 | 87 | // Token: 0x0600013D RID: 317 RVA: 0x00015B58 File Offset: 0x00013D58 88 | private void openInBrowserToolStripMenuItem_Click(object sender, EventArgs e) 89 | { 90 | Account account = this.objectListView1.SelectedObjects.Cast().First().Account; 91 | new Browser 92 | { 93 | Acc = account 94 | }.Show(); 95 | } 96 | 97 | // Token: 0x0600013E RID: 318 RVA: 0x00015B94 File Offset: 0x00013D94 98 | private void exportToJsonToolStripMenuItem_Click(object sender, EventArgs e) 99 | { 100 | string contents = JArray.FromObject(from s in Form1.AddedProducts.List 101 | select new 102 | { 103 | NikeEmail = s.EmailAddress, 104 | NikePass = s.Password, 105 | ProductName = s.ProductName + " " + s.ProductType, 106 | Size = s.Size 107 | }).ToString(); 108 | File.WriteAllText(FileHelper.FileInSameDirectory("greeksneaks.json"), contents); 109 | "Done".Show(MessageBoxIcon.Asterisk, "", MessageBoxButtons.OK); 110 | } 111 | 112 | // Token: 0x04000139 RID: 313 113 | private object _lock = new object(); 114 | } 115 | } 116 | -------------------------------------------------------------------------------- /DataForm1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Linq; 5 | using System.Windows.Forms; 6 | using IMLokesh.Extensions; 7 | 8 | namespace Better_Nike_Bot 9 | { 10 | // Token: 0x02000010 RID: 16 11 | public partial class DataForm1 : Form 12 | { 13 | // Token: 0x0600009E RID: 158 RVA: 0x0000B540 File Offset: 0x00009740 14 | public DataForm1(bool multiline, string title, string message, string text, int width, int height, string checkBoxCaption, bool checkBoxChecked = false, string checkBoxCaption2 = "") 15 | { 16 | this.InitializeComponent(); 17 | this.textBox1.Multiline = multiline; 18 | this.Text = title; 19 | this.labelMessage.Text = message; 20 | this.textBox1.Text = text; 21 | base.Width = width + 43; 22 | base.Height = height + 102; 23 | this.CheckBoxChecked = false; 24 | if (multiline) 25 | { 26 | this.textBox1.AcceptsReturn = true; 27 | } 28 | if (!checkBoxCaption.IsNullOrWhiteSpace()) 29 | { 30 | this.checkBox1.Visible = true; 31 | this.checkBox1.Text = checkBoxCaption; 32 | CheckBox checkBox = this.checkBox1; 33 | this.CheckBoxChecked = checkBoxChecked; 34 | checkBox.Checked = checkBoxChecked; 35 | } 36 | if (!checkBoxCaption2.IsNullOrWhiteSpace()) 37 | { 38 | this.checkBox2.Visible = true; 39 | this.checkBox2.Text = checkBoxCaption2; 40 | } 41 | } 42 | 43 | // Token: 0x1700002B RID: 43 44 | // (get) Token: 0x0600009F RID: 159 RVA: 0x000025FA File Offset: 0x000007FA 45 | // (set) Token: 0x060000A0 RID: 160 RVA: 0x00002602 File Offset: 0x00000802 46 | public string TextBoxText { get; set; } 47 | 48 | // Token: 0x1700002C RID: 44 49 | // (get) Token: 0x060000A1 RID: 161 RVA: 0x0000260B File Offset: 0x0000080B 50 | // (set) Token: 0x060000A2 RID: 162 RVA: 0x00002613 File Offset: 0x00000813 51 | public bool CheckBoxChecked { get; set; } 52 | 53 | // Token: 0x1700002D RID: 45 54 | // (get) Token: 0x060000A3 RID: 163 RVA: 0x0000261C File Offset: 0x0000081C 55 | // (set) Token: 0x060000A4 RID: 164 RVA: 0x00002624 File Offset: 0x00000824 56 | public bool CheckBoxChecked2 { get; set; } 57 | 58 | // Token: 0x1700002E RID: 46 59 | // (get) Token: 0x060000A5 RID: 165 RVA: 0x0000262D File Offset: 0x0000082D 60 | // (set) Token: 0x060000A6 RID: 166 RVA: 0x00002635 File Offset: 0x00000835 61 | public bool CheckWeb { get; set; } 62 | 63 | // Token: 0x1700002F RID: 47 64 | // (get) Token: 0x060000A7 RID: 167 RVA: 0x0000263E File Offset: 0x0000083E 65 | // (set) Token: 0x060000A8 RID: 168 RVA: 0x00002646 File Offset: 0x00000846 66 | public bool CheckSnkrs { get; set; } 67 | 68 | // Token: 0x060000A9 RID: 169 RVA: 0x0000B60C File Offset: 0x0000980C 69 | private void textBox1_TextChanged(object sender, EventArgs e) 70 | { 71 | if (this.textBox1.Multiline) 72 | { 73 | this.labelLines.Text = "Line Count: " + this.textBox1.Lines.Count(); 74 | } 75 | this.TextBoxText = this.textBox1.Text; 76 | } 77 | 78 | // Token: 0x060000AA RID: 170 RVA: 0x0000264F File Offset: 0x0000084F 79 | private void textBox1_KeyDown(object sender, KeyEventArgs e) 80 | { 81 | if (e.Control && e.KeyCode == Keys.A) 82 | { 83 | if (sender != null) 84 | { 85 | ((TextBox)sender).SelectAll(); 86 | } 87 | e.Handled = true; 88 | } 89 | } 90 | 91 | // Token: 0x060000AB RID: 171 RVA: 0x00002678 File Offset: 0x00000878 92 | private void checkBox1_CheckedChanged(object sender, EventArgs e) 93 | { 94 | this.CheckBoxChecked = this.checkBox1.Checked; 95 | } 96 | 97 | // Token: 0x060000AC RID: 172 RVA: 0x0000268B File Offset: 0x0000088B 98 | private void checkBox2_CheckedChanged(object sender, EventArgs e) 99 | { 100 | this.CheckBoxChecked2 = this.checkBox2.Checked; 101 | this.radioButton1.Enabled = this.checkBox2.Checked; 102 | this.radioButton2.Enabled = this.checkBox2.Checked; 103 | } 104 | 105 | // Token: 0x060000AD RID: 173 RVA: 0x000026CA File Offset: 0x000008CA 106 | private void radioButton1_CheckedChanged(object sender, EventArgs e) 107 | { 108 | this.CheckWeb = this.radioButton1.Checked; 109 | this.CheckSnkrs = !this.radioButton1.Checked; 110 | } 111 | 112 | // Token: 0x060000AE RID: 174 RVA: 0x000026CA File Offset: 0x000008CA 113 | private void radioButton2_CheckedChanged(object sender, EventArgs e) 114 | { 115 | this.CheckWeb = this.radioButton1.Checked; 116 | this.CheckSnkrs = !this.radioButton1.Checked; 117 | } 118 | 119 | // Token: 0x02000011 RID: 17 120 | public enum FormType 121 | { 122 | // Token: 0x040000CD RID: 205 123 | InputForm, 124 | // Token: 0x040000CE RID: 206 125 | OutputForm 126 | } 127 | } 128 | } 129 | -------------------------------------------------------------------------------- /CreditCardProfilesForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Better_Nike_Bot 2 | { 3 | // Token: 0x0200000F RID: 15 4 | public partial class CreditCardProfilesForm : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x0600009C RID: 156 RVA: 0x000025DB File Offset: 0x000007DB 7 | protected override void Dispose(bool disposing) 8 | { 9 | if (disposing && this.components != null) 10 | { 11 | this.components.Dispose(); 12 | } 13 | base.Dispose(disposing); 14 | } 15 | 16 | // Token: 0x0600009D RID: 157 RVA: 0x0000B1C8 File Offset: 0x000093C8 17 | private void InitializeComponent() 18 | { 19 | this.objectListView1 = new global::BrightIdeasSoftware.ObjectListView(); 20 | this.olvColumn1 = new global::BrightIdeasSoftware.OLVColumn(); 21 | this.buttonAdd = new global::System.Windows.Forms.Button(); 22 | this.buttonEdit = new global::System.Windows.Forms.Button(); 23 | this.buttonRemove = new global::System.Windows.Forms.Button(); 24 | ((global::System.ComponentModel.ISupportInitialize)this.objectListView1).BeginInit(); 25 | base.SuspendLayout(); 26 | this.objectListView1.AllColumns.Add(this.olvColumn1); 27 | this.objectListView1.Anchor = (global::System.Windows.Forms.AnchorStyles.Top | global::System.Windows.Forms.AnchorStyles.Bottom | global::System.Windows.Forms.AnchorStyles.Left | global::System.Windows.Forms.AnchorStyles.Right); 28 | this.objectListView1.Columns.AddRange(new global::System.Windows.Forms.ColumnHeader[] 29 | { 30 | this.olvColumn1 31 | }); 32 | this.objectListView1.Location = new global::System.Drawing.Point(12, 12); 33 | this.objectListView1.Name = "objectListView1"; 34 | this.objectListView1.ShowGroups = false; 35 | this.objectListView1.Size = new global::System.Drawing.Size(175, 218); 36 | this.objectListView1.TabIndex = 1; 37 | this.objectListView1.UseCompatibleStateImageBehavior = false; 38 | this.objectListView1.UseFiltering = true; 39 | this.objectListView1.View = global::System.Windows.Forms.View.Details; 40 | this.olvColumn1.AspectName = "Name"; 41 | this.olvColumn1.CellPadding = null; 42 | this.olvColumn1.Text = "Profile Name"; 43 | this.olvColumn1.Width = 124; 44 | this.buttonAdd.Location = new global::System.Drawing.Point(12, 236); 45 | this.buttonAdd.Name = "buttonAdd"; 46 | this.buttonAdd.Size = new global::System.Drawing.Size(175, 23); 47 | this.buttonAdd.TabIndex = 2; 48 | this.buttonAdd.Text = "Add"; 49 | this.buttonAdd.UseVisualStyleBackColor = true; 50 | this.buttonAdd.Click += new global::System.EventHandler(this.buttonAdd_Click); 51 | this.buttonEdit.Location = new global::System.Drawing.Point(12, 265); 52 | this.buttonEdit.Name = "buttonEdit"; 53 | this.buttonEdit.Size = new global::System.Drawing.Size(175, 23); 54 | this.buttonEdit.TabIndex = 3; 55 | this.buttonEdit.Text = "Edit"; 56 | this.buttonEdit.UseVisualStyleBackColor = true; 57 | this.buttonEdit.Click += new global::System.EventHandler(this.buttonEdit_Click); 58 | this.buttonRemove.Location = new global::System.Drawing.Point(12, 294); 59 | this.buttonRemove.Name = "buttonRemove"; 60 | this.buttonRemove.Size = new global::System.Drawing.Size(175, 23); 61 | this.buttonRemove.TabIndex = 4; 62 | this.buttonRemove.Text = "Remove"; 63 | this.buttonRemove.UseVisualStyleBackColor = true; 64 | this.buttonRemove.Click += new global::System.EventHandler(this.buttonRemove_Click); 65 | base.AutoScaleDimensions = new global::System.Drawing.SizeF(6f, 13f); 66 | base.AutoScaleMode = global::System.Windows.Forms.AutoScaleMode.Font; 67 | base.ClientSize = new global::System.Drawing.Size(199, 324); 68 | base.Controls.Add(this.buttonRemove); 69 | base.Controls.Add(this.buttonEdit); 70 | base.Controls.Add(this.buttonAdd); 71 | base.Controls.Add(this.objectListView1); 72 | base.FormBorderStyle = global::System.Windows.Forms.FormBorderStyle.FixedDialog; 73 | base.Name = "CreditCardProfilesForm"; 74 | base.StartPosition = global::System.Windows.Forms.FormStartPosition.CenterParent; 75 | this.Text = "Manage Cards"; 76 | ((global::System.ComponentModel.ISupportInitialize)this.objectListView1).EndInit(); 77 | base.ResumeLayout(false); 78 | } 79 | 80 | // Token: 0x040000B7 RID: 183 81 | private global::System.ComponentModel.IContainer components; 82 | 83 | // Token: 0x040000B8 RID: 184 84 | private global::BrightIdeasSoftware.ObjectListView objectListView1; 85 | 86 | // Token: 0x040000B9 RID: 185 87 | private global::BrightIdeasSoftware.OLVColumn olvColumn1; 88 | 89 | // Token: 0x040000BA RID: 186 90 | private global::System.Windows.Forms.Button buttonAdd; 91 | 92 | // Token: 0x040000BB RID: 187 93 | private global::System.Windows.Forms.Button buttonEdit; 94 | 95 | // Token: 0x040000BC RID: 188 96 | private global::System.Windows.Forms.Button buttonRemove; 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /ProductDetails.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Better_Nike_Bot 4 | { 5 | // Token: 0x02000025 RID: 37 6 | public class ProductDetails 7 | { 8 | // Token: 0x1700006B RID: 107 9 | // (get) Token: 0x060001AD RID: 429 RVA: 0x00002EA3 File Offset: 0x000010A3 10 | // (set) Token: 0x060001AE RID: 430 RVA: 0x00002EAB File Offset: 0x000010AB 11 | public string Ticks { get; set; } 12 | 13 | // Token: 0x1700006C RID: 108 14 | // (get) Token: 0x060001AF RID: 431 RVA: 0x00002EB4 File Offset: 0x000010B4 15 | // (set) Token: 0x060001B0 RID: 432 RVA: 0x00002EBC File Offset: 0x000010BC 16 | public string CatalogId 17 | { 18 | get 19 | { 20 | return this._catalogId; 21 | } 22 | set 23 | { 24 | this._catalogId = value; 25 | } 26 | } 27 | 28 | // Token: 0x1700006D RID: 109 29 | // (get) Token: 0x060001B1 RID: 433 RVA: 0x00002EC5 File Offset: 0x000010C5 30 | // (set) Token: 0x060001B2 RID: 434 RVA: 0x00002ECD File Offset: 0x000010CD 31 | public string ProductId { get; set; } 32 | 33 | // Token: 0x1700006E RID: 110 34 | // (get) Token: 0x060001B3 RID: 435 RVA: 0x00002ED6 File Offset: 0x000010D6 35 | // (set) Token: 0x060001B4 RID: 436 RVA: 0x00002EDE File Offset: 0x000010DE 36 | public string Price { get; set; } 37 | 38 | // Token: 0x1700006F RID: 111 39 | // (get) Token: 0x060001B5 RID: 437 RVA: 0x00002EE7 File Offset: 0x000010E7 40 | public string SiteId 41 | { 42 | get 43 | { 44 | return "null"; 45 | } 46 | } 47 | 48 | // Token: 0x17000070 RID: 112 49 | // (get) Token: 0x060001B6 RID: 438 RVA: 0x00002EEE File Offset: 0x000010EE 50 | // (set) Token: 0x060001B7 RID: 439 RVA: 0x00002EF6 File Offset: 0x000010F6 51 | public string Line1 { get; set; } 52 | 53 | // Token: 0x17000071 RID: 113 54 | // (get) Token: 0x060001B8 RID: 440 RVA: 0x00002EFF File Offset: 0x000010FF 55 | // (set) Token: 0x060001B9 RID: 441 RVA: 0x00002F07 File Offset: 0x00001107 56 | public string Line2 { get; set; } 57 | 58 | // Token: 0x17000072 RID: 114 59 | // (get) Token: 0x060001BA RID: 442 RVA: 0x00002F10 File Offset: 0x00001110 60 | // (set) Token: 0x060001BB RID: 443 RVA: 0x00002F18 File Offset: 0x00001118 61 | public string SkuAndSize { get; set; } 62 | 63 | // Token: 0x17000073 RID: 115 64 | // (get) Token: 0x060001BC RID: 444 RVA: 0x00020B4C File Offset: 0x0001ED4C 65 | public string Quantity 66 | { 67 | get 68 | { 69 | return 1.ToString(); 70 | } 71 | } 72 | 73 | // Token: 0x17000074 RID: 116 74 | // (get) Token: 0x060001BD RID: 445 RVA: 0x00002F21 File Offset: 0x00001121 75 | // (set) Token: 0x060001BE RID: 446 RVA: 0x00002F29 File Offset: 0x00001129 76 | public string SkuId { get; set; } 77 | 78 | // Token: 0x17000075 RID: 117 79 | // (get) Token: 0x060001BF RID: 447 RVA: 0x00002F32 File Offset: 0x00001132 80 | // (set) Token: 0x060001C0 RID: 448 RVA: 0x00002F3A File Offset: 0x0000113A 81 | public string Size { get; set; } 82 | 83 | // Token: 0x17000076 RID: 118 84 | // (get) Token: 0x060001C1 RID: 449 RVA: 0x00002F43 File Offset: 0x00001143 85 | // (set) Token: 0x060001C2 RID: 450 RVA: 0x00002F4B File Offset: 0x0000114B 86 | public string StyleCode { get; set; } 87 | 88 | // Token: 0x17000077 RID: 119 89 | // (get) Token: 0x060001C3 RID: 451 RVA: 0x00002F54 File Offset: 0x00001154 90 | // (set) Token: 0x060001C4 RID: 452 RVA: 0x00002F5C File Offset: 0x0000115C 91 | public string ProductImage { get; set; } 92 | 93 | // Token: 0x17000078 RID: 120 94 | // (get) Token: 0x060001C5 RID: 453 RVA: 0x00002F65 File Offset: 0x00001165 95 | // (set) Token: 0x060001C6 RID: 454 RVA: 0x00002F6D File Offset: 0x0000116D 96 | public string SnkrsToken { get; set; } 97 | 98 | // Token: 0x17000079 RID: 121 99 | // (get) Token: 0x060001C7 RID: 455 RVA: 0x00002F76 File Offset: 0x00001176 100 | // (set) Token: 0x060001C8 RID: 456 RVA: 0x00002F7E File Offset: 0x0000117E 101 | public string NikeWho { get; set; } 102 | 103 | // Token: 0x1700007A RID: 122 104 | // (get) Token: 0x060001C9 RID: 457 RVA: 0x00002F87 File Offset: 0x00001187 105 | // (set) Token: 0x060001CA RID: 458 RVA: 0x00002F8F File Offset: 0x0000118F 106 | public string NikeBirthmark { get; set; } 107 | 108 | // Token: 0x1700007B RID: 123 109 | // (get) Token: 0x060001CB RID: 459 RVA: 0x00002F98 File Offset: 0x00001198 110 | // (set) Token: 0x060001CC RID: 460 RVA: 0x00002FA0 File Offset: 0x000011A0 111 | public string SnkrsShopperToken { get; set; } 112 | 113 | // Token: 0x1700007C RID: 124 114 | // (get) Token: 0x060001CD RID: 461 RVA: 0x00002FA9 File Offset: 0x000011A9 115 | // (set) Token: 0x060001CE RID: 462 RVA: 0x00002FB1 File Offset: 0x000011B1 116 | public string SnkrsUrl { get; set; } 117 | 118 | // Token: 0x04000191 RID: 401 119 | private string _catalogId = "1"; 120 | } 121 | } 122 | -------------------------------------------------------------------------------- /AdvancedSettingsForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Linq; 5 | using System.Windows.Forms; 6 | using Better_Nike_Bot.Browser; 7 | using IMLokesh.Extensions; 8 | using IMLokesh.FormUtility; 9 | 10 | namespace Better_Nike_Bot 11 | { 12 | // Token: 0x02000023 RID: 35 13 | public partial class AdvancedSettingsForm : Form 14 | { 15 | // Token: 0x06000185 RID: 389 RVA: 0x0001FA68 File Offset: 0x0001DC68 16 | public AdvancedSettingsForm() 17 | { 18 | this.InitializeComponent(); 19 | base.CenterToParent(); 20 | this.textBoxServiceLink.Text = NotificationSettings.ServiceLink; 21 | this.textBoxServiceLogo.Text = NotificationSettings.ServiceLogoImage; 22 | this.textBoxServiceName.Text = NotificationSettings.ServiceName; 23 | this.textBoxServiceTwitter.Text = NotificationSettings.ServiceTwitterHandle; 24 | this.textBoxSubject.Text = NotificationSettings.Subject; 25 | this.textBoxSendFromName.Text = NotificationSettings.SendFromName; 26 | this.textBoxSendFromEmail.Text = NotificationSettings.SendFromEmail; 27 | this.textBoxTextTemplate.Text = NotificationSettings.TextTemplate; 28 | } 29 | 30 | // Token: 0x06000186 RID: 390 RVA: 0x00002D5B File Offset: 0x00000F5B 31 | private void buttonSave_Click(object sender, EventArgs e) 32 | { 33 | if (!this.SaveSettings()) 34 | { 35 | return; 36 | } 37 | base.DialogResult = DialogResult.OK; 38 | } 39 | 40 | // Token: 0x06000187 RID: 391 RVA: 0x0001FB08 File Offset: 0x0001DD08 41 | private bool SaveSettings() 42 | { 43 | if (new string[] 44 | { 45 | this.textBoxSubject.Text, 46 | this.textBoxSendFromEmail.Text, 47 | this.textBoxSendFromEmail.Text, 48 | this.textBoxTextTemplate.Text, 49 | this.textBoxServiceLink.Text, 50 | this.textBoxServiceLogo.Text, 51 | this.textBoxServiceName.Text, 52 | this.textBoxServiceTwitter.Text 53 | }.Any((string s) => s.IsNullOrWhiteSpace())) 54 | { 55 | "All fields are required. ".Show(MessageBoxIcon.Hand, "", MessageBoxButtons.OK); 56 | return false; 57 | } 58 | if (!this.textBoxSendFromEmail.Text.Contains("@")) 59 | { 60 | "An email address must contain '@' symbol. ".Show(MessageBoxIcon.Hand, "", MessageBoxButtons.OK); 61 | return false; 62 | } 63 | NotificationSettings.Subject = this.textBoxSubject.Text; 64 | NotificationSettings.SendFromName = this.textBoxSendFromName.Text; 65 | NotificationSettings.SendFromEmail = this.textBoxSendFromEmail.Text; 66 | NotificationSettings.TextTemplate = this.textBoxTextTemplate.Text; 67 | NotificationSettings.ServiceLink = this.textBoxServiceLink.Text; 68 | NotificationSettings.ServiceLogoImage = this.textBoxServiceLogo.Text; 69 | NotificationSettings.ServiceName = this.textBoxServiceName.Text; 70 | NotificationSettings.ServiceTwitterHandle = this.textBoxServiceTwitter.Text; 71 | NotificationSettings.Save(); 72 | return true; 73 | } 74 | 75 | // Token: 0x06000188 RID: 392 RVA: 0x0001FC78 File Offset: 0x0001DE78 76 | private void AdvancedSettingsForm_Load(object sender, EventArgs e) 77 | { 78 | foreach (object obj in base.Controls) 79 | { 80 | Control control = (Control)obj; 81 | control.Enabled = Form1.UltimateVersion; 82 | } 83 | } 84 | 85 | // Token: 0x06000189 RID: 393 RVA: 0x0001FCD8 File Offset: 0x0001DED8 86 | private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 87 | { 88 | DialogResult dialogResult = "Above settings will be automatically saved. ".Show(MessageBoxIcon.Exclamation, "", MessageBoxButtons.OKCancel); 89 | if (dialogResult == DialogResult.Cancel) 90 | { 91 | return; 92 | } 93 | if (!this.SaveSettings()) 94 | { 95 | return; 96 | } 97 | NotificationSettings.TextTemplate.ReplacePlaceholders(null).Show(MessageBoxIcon.None, "", MessageBoxButtons.OK); 98 | } 99 | 100 | // Token: 0x0600018A RID: 394 RVA: 0x0001FD20 File Offset: 0x0001DF20 101 | private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 102 | { 103 | DialogResult dialogResult = "Above settings will be automatically saved. ".Show(MessageBoxIcon.Exclamation, "", MessageBoxButtons.OKCancel); 104 | if (dialogResult == DialogResult.Cancel) 105 | { 106 | return; 107 | } 108 | if (!this.SaveSettings()) 109 | { 110 | return; 111 | } 112 | new Browser 113 | { 114 | Html = NotificationSettings.HtmlTemplate.ReplacePlaceholders(null), 115 | Title = NotificationSettings.Subject.ReplacePlaceholders(null) 116 | }.ShowDialog(); 117 | } 118 | 119 | // Token: 0x0600018B RID: 395 RVA: 0x00002D6D File Offset: 0x00000F6D 120 | private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 121 | { 122 | FormHelper.OutputHelper(true, "Available Fields", "You can use the following fields in subject and text template.", NotificationSettings.AvailableFields.JoinToString("\r\n"), 500, 0); 123 | } 124 | } 125 | } 126 | -------------------------------------------------------------------------------- /AtcItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using IMLokesh.Extensions; 3 | using IMLokesh.HttpUtility; 4 | 5 | namespace Better_Nike_Bot 6 | { 7 | // Token: 0x02000024 RID: 36 8 | public class AtcItem 9 | { 10 | // Token: 0x0600018F RID: 399 RVA: 0x00020898 File Offset: 0x0001EA98 11 | public AtcItem(Account acc, string url, string size) 12 | { 13 | this.Account = acc; 14 | this.Size = size; 15 | this.Url = url; 16 | this.Details = new ProductDetails(); 17 | this.Attempts = (this.CaptchaAttempts = 0); 18 | } 19 | 20 | // Token: 0x1700005C RID: 92 21 | // (get) Token: 0x06000190 RID: 400 RVA: 0x00002DB3 File Offset: 0x00000FB3 22 | // (set) Token: 0x06000191 RID: 401 RVA: 0x00002DBB File Offset: 0x00000FBB 23 | public Account Account { get; set; } 24 | 25 | // Token: 0x1700005D RID: 93 26 | // (get) Token: 0x06000192 RID: 402 RVA: 0x00002DC4 File Offset: 0x00000FC4 27 | // (set) Token: 0x06000193 RID: 403 RVA: 0x00002DCC File Offset: 0x00000FCC 28 | public string Size { get; set; } 29 | 30 | // Token: 0x1700005E RID: 94 31 | // (get) Token: 0x06000194 RID: 404 RVA: 0x00002DD5 File Offset: 0x00000FD5 32 | // (set) Token: 0x06000195 RID: 405 RVA: 0x00002DDD File Offset: 0x00000FDD 33 | public string Url { get; set; } 34 | 35 | // Token: 0x1700005F RID: 95 36 | // (get) Token: 0x06000196 RID: 406 RVA: 0x00002DE6 File Offset: 0x00000FE6 37 | // (set) Token: 0x06000197 RID: 407 RVA: 0x00002DEE File Offset: 0x00000FEE 38 | public string ServerKey { get; set; } 39 | 40 | // Token: 0x17000060 RID: 96 41 | // (get) Token: 0x06000198 RID: 408 RVA: 0x00002DF7 File Offset: 0x00000FF7 42 | // (set) Token: 0x06000199 RID: 409 RVA: 0x00002DFF File Offset: 0x00000FFF 43 | public string AuthToken { get; set; } 44 | 45 | // Token: 0x17000061 RID: 97 46 | // (get) Token: 0x0600019A RID: 410 RVA: 0x00002E08 File Offset: 0x00001008 47 | // (set) Token: 0x0600019B RID: 411 RVA: 0x00002E10 File Offset: 0x00001010 48 | public string String_0 { get; set; } 49 | 50 | // Token: 0x17000062 RID: 98 51 | // (get) Token: 0x0600019C RID: 412 RVA: 0x00002E19 File Offset: 0x00001019 52 | // (set) Token: 0x0600019D RID: 413 RVA: 0x00002E21 File Offset: 0x00001021 53 | public string String_1 { get; set; } 54 | 55 | // Token: 0x17000063 RID: 99 56 | // (get) Token: 0x0600019E RID: 414 RVA: 0x00002E2A File Offset: 0x0000102A 57 | // (set) Token: 0x0600019F RID: 415 RVA: 0x00002E32 File Offset: 0x00001032 58 | public string String_2 { get; set; } 59 | 60 | // Token: 0x17000064 RID: 100 61 | // (get) Token: 0x060001A0 RID: 416 RVA: 0x00002E3B File Offset: 0x0000103B 62 | // (set) Token: 0x060001A1 RID: 417 RVA: 0x00002E43 File Offset: 0x00001043 63 | public string SnkrsBuyUrl { get; set; } 64 | 65 | // Token: 0x17000065 RID: 101 66 | // (get) Token: 0x060001A2 RID: 418 RVA: 0x00002E4C File Offset: 0x0000104C 67 | // (set) Token: 0x060001A3 RID: 419 RVA: 0x00002E54 File Offset: 0x00001054 68 | public ProductDetails Details { get; set; } 69 | 70 | // Token: 0x17000066 RID: 102 71 | // (get) Token: 0x060001A4 RID: 420 RVA: 0x00002E5D File Offset: 0x0000105D 72 | // (set) Token: 0x060001A5 RID: 421 RVA: 0x00002E65 File Offset: 0x00001065 73 | public int Attempts { get; set; } 74 | 75 | // Token: 0x17000067 RID: 103 76 | // (get) Token: 0x060001A6 RID: 422 RVA: 0x00002E6E File Offset: 0x0000106E 77 | // (set) Token: 0x060001A7 RID: 423 RVA: 0x00002E76 File Offset: 0x00001076 78 | public int CaptchaAttempts { get; set; } 79 | 80 | // Token: 0x17000068 RID: 104 81 | // (get) Token: 0x060001A8 RID: 424 RVA: 0x00002E7F File Offset: 0x0000107F 82 | // (set) Token: 0x060001A9 RID: 425 RVA: 0x00002E87 File Offset: 0x00001087 83 | public ShouldStop ShouldStop { get; set; } 84 | 85 | // Token: 0x17000069 RID: 105 86 | // (get) Token: 0x060001AA RID: 426 RVA: 0x000208DC File Offset: 0x0001EADC 87 | public string AtcUrl 88 | { 89 | get 90 | { 91 | string text = NikeUrls.NikeAtc; 92 | text = text.With(new object[] 93 | { 94 | this.Details.Ticks, 95 | this.Details.Ticks, 96 | this.Details.CatalogId, 97 | this.Details.ProductId, 98 | this.Details.Price.UrlEncode(false), 99 | this.Details.SiteId, 100 | this.Details.Line1.UrlEncode(false), 101 | this.Details.Line2.UrlEncode(false), 102 | this.Details.SkuAndSize.UrlEncode(false), 103 | this.Details.Quantity, 104 | this.Details.SkuId, 105 | this.Details.Size.UrlEncode(false), 106 | this.Details.Ticks 107 | }); 108 | return this.ServerKey.IsNullOrWhiteSpace() ? text : "{0}&auth_token={1}&server_key={2}&status=solved&captchaIsValidated=true".With(new object[] 109 | { 110 | text, 111 | this.AuthToken, 112 | this.ServerKey 113 | }); 114 | } 115 | } 116 | 117 | // Token: 0x1700006A RID: 106 118 | // (get) Token: 0x060001AB RID: 427 RVA: 0x00020A14 File Offset: 0x0001EC14 119 | public string AtcWaitUrl 120 | { 121 | get 122 | { 123 | string s = this.ServerKey.IsNullOrWhiteSpace() ? NikeUrls.NikeAtcWaitNoCaptcha : NikeUrls.NikeAtcWait; 124 | return s.With(new object[] 125 | { 126 | this.Details.Ticks, 127 | this.Details.Ticks, 128 | this.Details.CatalogId, 129 | this.Details.ProductId, 130 | this.Details.Price.UrlEncode(false), 131 | this.Details.SiteId, 132 | this.Details.Line1.UrlEncode(false), 133 | this.Details.Line2.UrlEncode(false), 134 | this.Details.SkuAndSize.UrlEncode(false), 135 | this.Details.Quantity, 136 | this.Details.SkuId, 137 | this.Details.Size.UrlEncode(false), 138 | this.Details.Ticks, 139 | this.String_0, 140 | this.String_2, 141 | this.AuthToken, 142 | this.ServerKey 143 | }); 144 | } 145 | } 146 | } 147 | } 148 | -------------------------------------------------------------------------------- /DataForm1.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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /LinkScheduler.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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /ScheduleForm.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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SnkrsCalendar.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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /AccountDetailsForm.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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /AddedProductsForm.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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /CheckoutProfile.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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /CreateAccountsForm.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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /AdvancedSettingsForm.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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /CreditCardProfilesForm.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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /AccountDetailsForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Linq; 5 | using System.Windows.Forms; 6 | using IMLokesh.Extensions; 7 | 8 | namespace Better_Nike_Bot 9 | { 10 | // Token: 0x0200001D RID: 29 11 | public partial class AccountDetailsForm : Form 12 | { 13 | // Token: 0x06000121 RID: 289 RVA: 0x00013F88 File Offset: 0x00012188 14 | public AccountDetailsForm(Account acc = null, string link = "", string styleCode = "") 15 | { 16 | this.InitializeComponent(); 17 | base.CenterToParent(); 18 | this.comboBoxCardProfile.Items.Clear(); 19 | Form1.CreditCardProfiles = (from c in Form1.CreditCardProfiles 20 | where !c.Name.IsNullOrWhiteSpace() 21 | select c).ToList(); 22 | this.comboBoxCardProfile.Items.AddRange((from c in Form1.CreditCardProfiles 23 | select c.Name).ToArray()); 24 | this.textBoxEarlyLinks.Text = link; 25 | this.textBoxStyleCodes.Text = styleCode; 26 | if (acc.IsNotNull()) 27 | { 28 | this.textBoxEmailAddress.Text = acc.EmailAddress; 29 | this.textBoxPassword.Text = acc.Password; 30 | this.textBoxSize.Text = acc.Size.JoinToString(","); 31 | this.textBoxTweetKeywords.Text = acc.Keywords.JoinToString(","); 32 | this.textBoxCollectionKeywords.Text = acc.CollectionKeywords.JoinToString(","); 33 | this.textBoxEarlyLinks.Text = acc.EarlyLinks.JoinToString(","); 34 | this.textBoxStyleCodes.Text = acc.ProductStyleCodes.JoinToString(","); 35 | this.checkBoxGuestCheckout.Checked = acc.IsGuest; 36 | this.textBoxNotificationEmail.Text = acc.NotificationEmail; 37 | if (acc.CheckoutInfo.IsNotNull()) 38 | { 39 | this.checkBoxEnableCCCheckout.Checked = acc.CheckoutInfo.CcCheckout; 40 | try 41 | { 42 | this.comboBoxCardProfile.SelectedItem = acc.CheckoutInfo.CcProfile; 43 | } 44 | catch (Exception) 45 | { 46 | "Error selecting cc profile".Show(MessageBoxIcon.Hand, "", MessageBoxButtons.OK); 47 | } 48 | } 49 | if (!acc.NotificationText.IsNullOrWhiteSpace()) 50 | { 51 | string[] items = acc.NotificationText.Split(new char[] 52 | { 53 | '@' 54 | }); 55 | string text = items[0]; 56 | NotificationService notificationService = NotificationSettings.AvailableTextNotificationServices.First((NotificationService n) => n.EmailSuffix.EndsWith(items[1])); 57 | this.textBoxNumber.Text = text; 58 | this.comboBoxCarrier.SelectedItem = notificationService.Carrier; 59 | } 60 | } 61 | } 62 | 63 | // Token: 0x17000058 RID: 88 64 | // (get) Token: 0x06000122 RID: 290 RVA: 0x00002A9C File Offset: 0x00000C9C 65 | // (set) Token: 0x06000123 RID: 291 RVA: 0x00002AA4 File Offset: 0x00000CA4 66 | public Account Account { get; set; } 67 | 68 | // Token: 0x06000124 RID: 292 RVA: 0x000141E4 File Offset: 0x000123E4 69 | private void buttonSave_Click(object sender, EventArgs e) 70 | { 71 | try 72 | { 73 | CheckoutInfo cInfo = new CheckoutInfo(false, this.checkBoxEnableCCCheckout.Checked, "", "", false, this.comboBoxCardProfile.SelectedItem.IsNull() ? null : this.comboBoxCardProfile.SelectedItem.ToString()); 74 | this.Account = new Account(this.textBoxEmailAddress.Text, this.textBoxPassword.Text, this.textBoxSize.Text, this.textBoxTweetKeywords.Text, this.textBoxCollectionKeywords.Text, this.textBoxEarlyLinks.Text, this.textBoxStyleCodes.Text, this.textBoxNotificationEmail.Text, this.comboBoxCarrier.SelectedItem.IsNull() ? "" : this.comboBoxCarrier.SelectedItem.ToString(), this.textBoxNumber.Text, cInfo, this.checkBoxGuestCheckout.Checked); 75 | } 76 | catch (Exception ex) 77 | { 78 | ex.Message.Show(MessageBoxIcon.Hand, "", MessageBoxButtons.OK); 79 | return; 80 | } 81 | base.DialogResult = DialogResult.OK; 82 | } 83 | 84 | // Token: 0x06000125 RID: 293 RVA: 0x00014308 File Offset: 0x00012508 85 | private void textBox4_Enter(object sender, EventArgs e) 86 | { 87 | TextBox window = (TextBox)sender; 88 | ToolTip toolTip = new ToolTip(); 89 | toolTip.Show("Separate multiple values by comma.", window, 0, 22, 3000); 90 | } 91 | 92 | // Token: 0x06000126 RID: 294 RVA: 0x00014308 File Offset: 0x00012508 93 | private void textBox5_Enter(object sender, EventArgs e) 94 | { 95 | TextBox window = (TextBox)sender; 96 | ToolTip toolTip = new ToolTip(); 97 | toolTip.Show("Separate multiple values by comma.", window, 0, 22, 3000); 98 | } 99 | 100 | // Token: 0x06000127 RID: 295 RVA: 0x00014338 File Offset: 0x00012538 101 | private void textBox6_Enter(object sender, EventArgs e) 102 | { 103 | TextBox window = (TextBox)sender; 104 | ToolTip toolTip = new ToolTip(); 105 | toolTip.Show("Please enter style code that looks like xxxxxx-xxx.", window, 0, 22, 3000); 106 | } 107 | 108 | // Token: 0x06000128 RID: 296 RVA: 0x00002AAD File Offset: 0x00000CAD 109 | private void checkBox1_CheckedChanged(object sender, EventArgs e) 110 | { 111 | this.textBoxPassword.PasswordChar = (this.checkBoxShowPassword.Checked ? '\0' : '•'); 112 | } 113 | 114 | // Token: 0x06000129 RID: 297 RVA: 0x00014308 File Offset: 0x00012508 115 | private void textBox7_Enter(object sender, EventArgs e) 116 | { 117 | TextBox window = (TextBox)sender; 118 | ToolTip toolTip = new ToolTip(); 119 | toolTip.Show("Separate multiple values by comma.", window, 0, 22, 3000); 120 | } 121 | 122 | // Token: 0x0600012A RID: 298 RVA: 0x00014368 File Offset: 0x00012568 123 | private void textBox8_Enter(object sender, EventArgs e) 124 | { 125 | TextBox window = (TextBox)sender; 126 | ToolTip toolTip = new ToolTip(); 127 | toolTip.Show("Defaults to the account login address. ", window, 0, 22, 3000); 128 | } 129 | 130 | // Token: 0x0600012B RID: 299 RVA: 0x00014398 File Offset: 0x00012598 131 | private void linkLabelManageCards_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 132 | { 133 | new CreditCardProfilesForm().ShowDialog(); 134 | this.comboBoxCardProfile.Items.Clear(); 135 | this.comboBoxCardProfile.Items.AddRange((from c in Form1.CreditCardProfiles 136 | select c.Name).ToArray()); 137 | } 138 | 139 | // Token: 0x0600012C RID: 300 RVA: 0x000143FC File Offset: 0x000125FC 140 | private void checkBoxRandomSize_CheckedChanged(object sender, EventArgs e) 141 | { 142 | if (this.checkBoxRandomSize.Checked) 143 | { 144 | this.textBoxSize.Text = "RANDOM"; 145 | this.textBoxSize.Enabled = false; 146 | return; 147 | } 148 | this.textBoxSize.Text = ""; 149 | this.textBoxSize.Enabled = true; 150 | } 151 | 152 | // Token: 0x0600012D RID: 301 RVA: 0x00002ACF File Offset: 0x00000CCF 153 | private void checkBoxGuestCheckout_CheckedChanged(object sender, EventArgs e) 154 | { 155 | this.textBoxPassword.Enabled = !this.checkBoxGuestCheckout.Checked; 156 | } 157 | } 158 | } 159 | -------------------------------------------------------------------------------- /Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Diagnostics; 3 | using System.Security.Principal; 4 | using System.Windows.Forms; 5 | using IMLokesh.Extensions; 6 | using IMLokesh.FormUtility; 7 | using IMLokesh.HttpUtility; 8 | using wyDay.TurboActivate; 9 | 10 | namespace Better_Nike_Bot 11 | { 12 | // Token: 0x0200004F RID: 79 13 | internal static class Program 14 | { 15 | // Token: 0x060002CD RID: 717 RVA: 0x0002C964 File Offset: 0x0002AB64 16 | [STAThread] 17 | private static void Main() 18 | { 19 | Application.EnableVisualStyles(); 20 | Application.SetCompatibleTextRenderingDefault(false); 21 | TurboActivate.VersionGUID = "69bf09c1537bbc0a134337.83592116"; 22 | Program.CheckLicense(); 23 | if (!Program.IsUserAdministrator()) 24 | { 25 | "You must start the application as an administrator. \r\n\r\nTo do this, right click and select 'Run as administrator'.\r\n\r\nYou can also right click, go to properties and select 'Always Run as Admin' under the compatibility tab.\r\n\r\nPlease contact us if you keep facing issues.".Show(MessageBoxIcon.Hand, "", MessageBoxButtons.OK); 26 | return; 27 | } 28 | if (Program.PriorProcess() != null) 29 | { 30 | try 31 | { 32 | if (!HttpHelper.PostUrl("https://olejov.000webhostapp.com/startup2", "pkey=123456".With(new object[] 33 | { 34 | Program.serial_code 35 | }), null, 10, "", "application/x-www-form-urlencoded", null, true).ParseToBool()) 36 | { 37 | if ("BNB is already running. Only ultimate users can spawn multiple instances on the same machine. Please contact admin@betternikebot.com for more info.\r\n\r\nWould you like to upgrade to ultimate now?".Show(MessageBoxIcon.Hand, "BNB Error", MessageBoxButtons.YesNoCancel) == DialogResult.Yes) 38 | { 39 | Process.Start("http://www.betternikebot.com/upgrade-to-ultimate/"); 40 | } 41 | return; 42 | } 43 | } 44 | catch (Exception ex) 45 | { 46 | ("Error initializing instance... " + ex.Message).Show(MessageBoxIcon.Hand, "BNB Error", MessageBoxButtons.OK); 47 | return; 48 | } 49 | } 50 | if (Program.run) 51 | { 52 | Application.Run(new AddedProductsForm()); 53 | Application.Run(new Form1()); 54 | return; 55 | } 56 | } 57 | 58 | // Token: 0x060002CE RID: 718 RVA: 0x0002CA58 File Offset: 0x0002AC58 59 | private static Process PriorProcess() 60 | { 61 | Process currentProcess = Process.GetCurrentProcess(); 62 | Process[] processesByName = Process.GetProcessesByName(currentProcess.ProcessName); 63 | foreach (Process process in processesByName) 64 | { 65 | if (process.Id != currentProcess.Id && process.MainModule.FileName == currentProcess.MainModule.FileName) 66 | { 67 | return process; 68 | } 69 | } 70 | return null; 71 | } 72 | 73 | // Token: 0x060002CF RID: 719 RVA: 0x0002CAC8 File Offset: 0x0002ACC8 74 | public static void CheckLicense() 75 | { 76 | string text = ""; 77 | try 78 | { 79 | text = TurboActivate.GetPKey(); 80 | } 81 | catch (Exception) 82 | { 83 | } 84 | bool flag = true; 85 | IsGenuineResult isGenuineResult; 86 | try 87 | { 88 | isGenuineResult = TurboActivate.IsGenuine(0u, 0u, false, false); 89 | flag = (isGenuineResult == IsGenuineResult.Genuine || isGenuineResult == IsGenuineResult.GenuineFeaturesChanged || isGenuineResult == IsGenuineResult.InternetError); 90 | } 91 | catch (TurboActivateException ex) 92 | { 93 | if (MessageBox.Show("Failed to check license. Click OK to retry. Please disable any antivirus or firewall that could be blocking bnb. \r\n" + ex.Message, "Checking License", MessageBoxButtons.OKCancel, MessageBoxIcon.Hand) == DialogResult.OK) 94 | { 95 | Program.CheckLicense(); 96 | } 97 | return; 98 | } 99 | if (flag) 100 | { 101 | if (isGenuineResult != IsGenuineResult.InternetError) 102 | { 103 | Program.run = true; 104 | Form1.Abc = "cba"; 105 | string text2 = "invalid"; 106 | try 107 | { 108 | text2 = TurboActivate.GetPKey(); 109 | } 110 | catch (Exception ex2) 111 | { 112 | "Error getting license details {0}".With(new object[] 113 | { 114 | ex2.Message 115 | }).Show(MessageBoxIcon.Hand, "", MessageBoxButtons.OK); 116 | } 117 | Form1.SerialCode = (Program.serial_code = text2); 118 | return; 119 | } 120 | if (MessageBox.Show("Could not connect to server. Click OK to retry.", "Checking License", MessageBoxButtons.OKCancel, MessageBoxIcon.Hand) == DialogResult.OK) 121 | { 122 | Program.CheckLicense(); 123 | return; 124 | } 125 | } 126 | else 127 | { 128 | string text3 = FormHelper.InputHelper(false, "Better Nike Bot: Enter Serial Key", "Please enter the serial code that you received upon purchase", text, 500, 0); 129 | if (text3.IsNull()) 130 | { 131 | "You need a valid serial to run BetterNikeBot.".Show(MessageBoxIcon.Hand, "", MessageBoxButtons.OK); 132 | return; 133 | } 134 | try 135 | { 136 | TurboActivate.CheckAndSavePKey(text3, TurboActivate.TA_Flags.TA_USER); 137 | TurboActivate.Activate(); 138 | isGenuineResult = TurboActivate.IsGenuine(0u, 0u, false, false); 139 | Program.run = true; 140 | Form1.Abc = "cba"; 141 | string serialCode = "invalid"; 142 | try 143 | { 144 | serialCode = TurboActivate.GetPKey(); 145 | } 146 | catch (Exception ex3) 147 | { 148 | "Error getting license details. {0}".With(new object[] 149 | { 150 | ex3.Message 151 | }).Show(MessageBoxIcon.Hand, "", MessageBoxButtons.OK); 152 | } 153 | Form1.SerialCode = serialCode; 154 | } 155 | catch (Exception ex4) 156 | { 157 | ("Error in serial key:\r\n" + ex4.Message).Show(MessageBoxIcon.Hand, "", MessageBoxButtons.OK); 158 | Program.CheckLicense(); 159 | } 160 | return; 161 | } 162 | } 163 | 164 | // Token: 0x060002D0 RID: 720 RVA: 0x0002CCBC File Offset: 0x0002AEBC 165 | public static bool IsUserAdministrator() 166 | { 167 | bool result; 168 | try 169 | { 170 | WindowsIdentity current = WindowsIdentity.GetCurrent(); 171 | WindowsPrincipal windowsPrincipal = new WindowsPrincipal(current); 172 | result = windowsPrincipal.IsInRole(WindowsBuiltInRole.Administrator); 173 | } 174 | catch (UnauthorizedAccessException) 175 | { 176 | result = false; 177 | } 178 | catch (Exception) 179 | { 180 | result = false; 181 | } 182 | return result; 183 | } 184 | 185 | // Token: 0x040002DC RID: 732 186 | private const string Version = "2015-07-31"; 187 | 188 | // Token: 0x040002DD RID: 733 189 | private static bool run = false; 190 | 191 | // Token: 0x040002DE RID: 734 192 | private static string serial_code = ""; 193 | } 194 | } 195 | -------------------------------------------------------------------------------- /Class1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Globalization; 3 | using System.IO; 4 | using System.IO.Compression; 5 | using System.Reflection; 6 | using System.Security; 7 | using System.Security.Cryptography; 8 | 9 | namespace ns0 10 | { 11 | // Token: 0x0200001A RID: 26 12 | internal class Class1 13 | { 14 | // Token: 0x06000101 RID: 257 RVA: 0x000137E8 File Offset: 0x000119E8 15 | static Class1() 16 | { 17 | Class1.int_0 = int.MaxValue; 18 | Class1.int_1 = 44032; 19 | Class1.memoryStream_0 = new MemoryStream(0); 20 | Class1.memoryStream_1 = new MemoryStream(0); 21 | Class1.object_0 = new object(); 22 | } 23 | 24 | // Token: 0x06000103 RID: 259 RVA: 0x00013838 File Offset: 0x00011A38 25 | private static string smethod_0(Assembly assembly_0) 26 | { 27 | string text = assembly_0.FullName; 28 | int num = text.IndexOf(','); 29 | if (num >= 0) 30 | { 31 | text = text.Substring(0, num); 32 | } 33 | return text; 34 | } 35 | 36 | // Token: 0x06000104 RID: 260 RVA: 0x00013864 File Offset: 0x00011A64 37 | private static byte[] smethod_1(Assembly assembly_0) 38 | { 39 | try 40 | { 41 | string fullName = assembly_0.FullName; 42 | int num = fullName.IndexOf("PublicKeyToken="); 43 | if (num < 0) 44 | { 45 | num = fullName.IndexOf("publickeytoken="); 46 | } 47 | if (num < 0) 48 | { 49 | return null; 50 | } 51 | num += 15; 52 | if (fullName[num] != 'n') 53 | { 54 | if (fullName[num] != 'N') 55 | { 56 | string s = fullName.Substring(num, 16); 57 | long value = long.Parse(s, NumberStyles.HexNumber); 58 | byte[] bytes = BitConverter.GetBytes(value); 59 | Array.Reverse(bytes); 60 | return bytes; 61 | } 62 | } 63 | return null; 64 | } 65 | catch 66 | { 67 | } 68 | return null; 69 | } 70 | 71 | // Token: 0x06000105 RID: 261 RVA: 0x00013904 File Offset: 0x00011B04 72 | internal static byte[] smethod_2(Stream stream_0) 73 | { 74 | byte[] result; 75 | lock (Class1.object_0) 76 | { 77 | result = Class1.smethod_4(97L, stream_0); 78 | } 79 | return result; 80 | } 81 | 82 | // Token: 0x06000106 RID: 262 RVA: 0x00013948 File Offset: 0x00011B48 83 | internal static byte[] smethod_3(long long_0, Stream stream_0) 84 | { 85 | byte[] result; 86 | try 87 | { 88 | result = Class1.smethod_2(stream_0); 89 | } 90 | catch (HostProtectionException) 91 | { 92 | result = Class1.smethod_4(97L, stream_0); 93 | } 94 | return result; 95 | } 96 | 97 | // Token: 0x06000107 RID: 263 RVA: 0x00013984 File Offset: 0x00011B84 98 | internal static byte[] smethod_4(long long_0, Stream stream_0) 99 | { 100 | Stream stream = stream_0; 101 | MemoryStream memoryStream = null; 102 | for (int i = 1; i < 4; i++) 103 | { 104 | stream_0.ReadByte(); 105 | } 106 | ushort num = (ushort)stream_0.ReadByte(); 107 | num = ~num; 108 | if ((num & 2) != 0) 109 | { 110 | DESCryptoServiceProvider descryptoServiceProvider = new DESCryptoServiceProvider(); 111 | byte[] array = new byte[8]; 112 | stream_0.Read(array, 0, 8); 113 | descryptoServiceProvider.IV = array; 114 | byte[] array2 = new byte[8]; 115 | stream_0.Read(array2, 0, 8); 116 | bool flag = true; 117 | byte[] array3 = array2; 118 | for (int j = 0; j < array3.Length; j++) 119 | { 120 | if (array3[j] != 0) 121 | { 122 | flag = false; 123 | IL_8B: 124 | if (flag) 125 | { 126 | array2 = Class1.smethod_1(Assembly.GetExecutingAssembly()); 127 | } 128 | descryptoServiceProvider.Key = array2; 129 | if (Class1.memoryStream_0 == null) 130 | { 131 | if (Class1.int_0 == 2147483647) 132 | { 133 | Class1.memoryStream_0.Capacity = (int)stream_0.Length; 134 | } 135 | else 136 | { 137 | Class1.memoryStream_0.Capacity = Class1.int_0; 138 | } 139 | } 140 | Class1.memoryStream_0.Position = 0L; 141 | ICryptoTransform cryptoTransform = descryptoServiceProvider.CreateDecryptor(); 142 | int inputBlockSize = cryptoTransform.InputBlockSize; 143 | int outputBlockSize = cryptoTransform.OutputBlockSize; 144 | byte[] array4 = new byte[cryptoTransform.OutputBlockSize]; 145 | byte[] array5 = new byte[cryptoTransform.InputBlockSize]; 146 | int num2 = (int)stream_0.Position; 147 | while ((long)(num2 + inputBlockSize) < stream_0.Length) 148 | { 149 | stream_0.Read(array5, 0, inputBlockSize); 150 | int count = cryptoTransform.TransformBlock(array5, 0, inputBlockSize, array4, 0); 151 | Class1.memoryStream_0.Write(array4, 0, count); 152 | num2 += inputBlockSize; 153 | } 154 | stream_0.Read(array5, 0, (int)(stream_0.Length - (long)num2)); 155 | byte[] array6 = cryptoTransform.TransformFinalBlock(array5, 0, (int)(stream_0.Length - (long)num2)); 156 | Class1.memoryStream_0.Write(array6, 0, array6.Length); 157 | stream = Class1.memoryStream_0; 158 | stream.Position = 0L; 159 | memoryStream = Class1.memoryStream_0; 160 | goto IL_1C6; 161 | } 162 | } 163 | goto IL_8B; 164 | } 165 | IL_1C6: 166 | if ((num & 8) != 0) 167 | { 168 | if (Class1.memoryStream_1 == null) 169 | { 170 | if (Class1.int_1 == -2147483648) 171 | { 172 | Class1.memoryStream_1.Capacity = (int)stream.Length * 2; 173 | } 174 | else 175 | { 176 | Class1.memoryStream_1.Capacity = Class1.int_1; 177 | } 178 | } 179 | Class1.memoryStream_1.Position = 0L; 180 | DeflateStream deflateStream = new DeflateStream(stream, CompressionMode.Decompress); 181 | int num3 = 1000; 182 | byte[] buffer = new byte[1000]; 183 | int num4; 184 | do 185 | { 186 | num4 = deflateStream.Read(buffer, 0, num3); 187 | if (num4 > 0) 188 | { 189 | Class1.memoryStream_1.Write(buffer, 0, num4); 190 | } 191 | } 192 | while (num4 >= num3); 193 | memoryStream = Class1.memoryStream_1; 194 | } 195 | if (memoryStream != null) 196 | { 197 | return memoryStream.ToArray(); 198 | } 199 | byte[] array7 = new byte[stream_0.Length - stream_0.Position]; 200 | stream_0.Read(array7, 0, array7.Length); 201 | return array7; 202 | } 203 | 204 | // Token: 0x040000FB RID: 251 205 | private static readonly object object_0; 206 | 207 | // Token: 0x040000FC RID: 252 208 | private static readonly int int_0; 209 | 210 | // Token: 0x040000FD RID: 253 211 | private static readonly int int_1; 212 | 213 | // Token: 0x040000FE RID: 254 214 | private static readonly MemoryStream memoryStream_0 = null; 215 | 216 | // Token: 0x040000FF RID: 255 217 | private static readonly MemoryStream memoryStream_1 = null; 218 | 219 | // Token: 0x04000100 RID: 256 220 | private static readonly byte byte_0; 221 | } 222 | } 223 | -------------------------------------------------------------------------------- /CreateAccountsForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Diagnostics; 4 | using System.Drawing; 5 | using System.Windows.Forms; 6 | using IMLokesh.Extensions; 7 | using IMLokesh.HttpUtility; 8 | 9 | namespace Better_Nike_Bot 10 | { 11 | // Token: 0x0200000D RID: 13 12 | public partial class CreateAccountsForm : Form 13 | { 14 | // Token: 0x06000052 RID: 82 RVA: 0x0000232B File Offset: 0x0000052B 15 | public CreateAccountsForm() 16 | { 17 | this.InitializeComponent(); 18 | base.CenterToParent(); 19 | } 20 | 21 | // Token: 0x06000053 RID: 83 RVA: 0x00009990 File Offset: 0x00007B90 22 | private void CreateAccountsForm_Load(object sender, EventArgs e) 23 | { 24 | this.checkBoxRandomName.Checked = true; 25 | try 26 | { 27 | this.isUltimate = HttpHelper.PostUrl("http://www.betternikebot.com/bnb/isUltimate.php", "pkey={0}".With(new object[] 28 | { 29 | Form1.SerialCode 30 | }), null, 10, "", "application/x-www-form-urlencoded", null, true).ParseToBool(); 31 | } 32 | catch (Exception ex) 33 | { 34 | ex.Message.Show(MessageBoxIcon.Hand, "", MessageBoxButtons.OK); 35 | this.isUltimate = false; 36 | } 37 | if (!this.isUltimate) 38 | { 39 | this.numericUpDownNumberOfAccounts.Maximum = 5m; 40 | } 41 | bool flag = false; 42 | if (!this.isUltimate) 43 | { 44 | try 45 | { 46 | flag = !CreateAccounts.CheckStatus(); 47 | } 48 | catch (Exception) 49 | { 50 | } 51 | } 52 | if (flag) 53 | { 54 | DialogResult dialogResult = "Regular users can only create 5 accounts per day. Please check back tomorrow. Would you like to learn more?".Show(MessageBoxIcon.Asterisk, "", MessageBoxButtons.YesNo); 55 | if (dialogResult == DialogResult.Yes) 56 | { 57 | Process.Start("http://www.betternikebot.com/important-update-regarding-nike-account-creator/"); 58 | } 59 | this.buttonStart.Enabled = false; 60 | } 61 | } 62 | 63 | // Token: 0x06000054 RID: 84 RVA: 0x0000233F File Offset: 0x0000053F 64 | private void checkBoxRandomName_CheckedChanged(object sender, EventArgs e) 65 | { 66 | this.textBoxName.Enabled = !this.checkBoxRandomName.Checked; 67 | } 68 | 69 | // Token: 0x06000055 RID: 85 RVA: 0x00009A88 File Offset: 0x00007C88 70 | private void buttonStart_Click(object sender, EventArgs e) 71 | { 72 | if (this.textBoxEmailAddress.Text.Split(new char[] 73 | { 74 | '@' 75 | }).Length == 2) 76 | { 77 | if (this.textBoxSMSEmail.Text.Split(new char[] 78 | { 79 | '@' 80 | }).Length == 2) 81 | { 82 | if (this.textBoxPassword.Text.Length < 8) 83 | { 84 | "Password must be at least 8 characters long. ".Show(MessageBoxIcon.Hand, "", MessageBoxButtons.OK); 85 | return; 86 | } 87 | if (!this.textBoxPassword.Text.RegexIsMatch("[0-9]")) 88 | { 89 | "Password must contain at least one numeric character. ".Show(MessageBoxIcon.Hand, "", MessageBoxButtons.OK); 90 | return; 91 | } 92 | if (!this.textBoxPassword.Text.RegexIsMatch("[A-Z]") || !this.textBoxPassword.Text.RegexIsMatch("[a-z]")) 93 | { 94 | "Password must contain mixed case letters (capital letters and small letters). ".Show(MessageBoxIcon.Hand, "", MessageBoxButtons.OK); 95 | return; 96 | } 97 | if (!this.checkBoxRandomName.Checked && this.textBoxName.Text.Split(new char[] 98 | { 99 | ' ' 100 | }).Length < 2) 101 | { 102 | "Name must contain a first and a last name. ".Show(MessageBoxIcon.Hand, "", MessageBoxButtons.OK); 103 | return; 104 | } 105 | this.email = this.textBoxEmailAddress.Text.Trim(); 106 | this.pass = this.textBoxPassword.Text.Trim(); 107 | this.name = this.textBoxName.Text.Trim(); 108 | this.randomName = this.checkBoxRandomName.Checked; 109 | this.count = this.numericUpDownNumberOfAccounts.Value.ParseToInt(); 110 | this.smsEmail = this.textBoxSMSEmail.Text.Trim(); 111 | this.smsApiKey = this.textBoxSMSAPI.Text.Trim(); 112 | this.disableMobile = this.checkBox1.Checked; 113 | this.disablePlusSign = this.checkBoxPlusSign.Checked; 114 | base.DialogResult = DialogResult.OK; 115 | return; 116 | } 117 | } 118 | "Please enter a valid email address. ".Show(MessageBoxIcon.Hand, "", MessageBoxButtons.OK); 119 | } 120 | 121 | // Token: 0x06000056 RID: 86 RVA: 0x00009C98 File Offset: 0x00007E98 122 | private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 123 | { 124 | try 125 | { 126 | Process.Start("http://www.getsmscode.com/?ref=165220"); 127 | } 128 | catch (Exception) 129 | { 130 | "Please open getsmscode.com in your browser.".Show(MessageBoxIcon.Asterisk, "", MessageBoxButtons.OK); 131 | } 132 | } 133 | 134 | // Token: 0x06000057 RID: 87 RVA: 0x00009CD8 File Offset: 0x00007ED8 135 | private void textBoxEmailAddress_Enter(object sender, EventArgs e) 136 | { 137 | TextBox window = (TextBox)sender; 138 | ToolTip toolTip = new ToolTip(); 139 | toolTip.Show("Variations of this email will be used to signup.", window, 0, 22, 3000); 140 | } 141 | 142 | // Token: 0x06000058 RID: 88 RVA: 0x00009D08 File Offset: 0x00007F08 143 | private void textBoxPassword_Enter(object sender, EventArgs e) 144 | { 145 | TextBox window = (TextBox)sender; 146 | ToolTip toolTip = new ToolTip(); 147 | toolTip.Show("This will be your nike+ account's password.", window, 0, 22, 3000); 148 | } 149 | 150 | // Token: 0x06000059 RID: 89 RVA: 0x00009D38 File Offset: 0x00007F38 151 | private void textBoxName_Enter(object sender, EventArgs e) 152 | { 153 | TextBox window = (TextBox)sender; 154 | ToolTip toolTip = new ToolTip(); 155 | toolTip.Show("This will be your nike+ account's name. Enter full name. Or select random name.", window, 0, 22, 3000); 156 | } 157 | 158 | // Token: 0x0600005A RID: 90 RVA: 0x0000235A File Offset: 0x0000055A 159 | private void checkBox1_CheckedChanged(object sender, EventArgs e) 160 | { 161 | this.groupBox1.Enabled = !this.checkBox1.Checked; 162 | } 163 | 164 | // Token: 0x0600005B RID: 91 RVA: 0x00002375 File Offset: 0x00000575 165 | private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 166 | { 167 | Process.Start("http://www.betternikebot.com/important-update-regarding-nike-account-creator/"); 168 | } 169 | 170 | // Token: 0x0600005C RID: 92 RVA: 0x00002382 File Offset: 0x00000582 171 | private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 172 | { 173 | Process.Start("http://www.getsmscode.com/itemlist.php"); 174 | } 175 | 176 | // Token: 0x0400006E RID: 110 177 | public string email; 178 | 179 | // Token: 0x0400006F RID: 111 180 | public string pass; 181 | 182 | // Token: 0x04000070 RID: 112 183 | public string name; 184 | 185 | // Token: 0x04000071 RID: 113 186 | public string smsEmail; 187 | 188 | // Token: 0x04000072 RID: 114 189 | public string smsApiKey; 190 | 191 | // Token: 0x04000073 RID: 115 192 | public bool randomName; 193 | 194 | // Token: 0x04000074 RID: 116 195 | public int count; 196 | 197 | // Token: 0x04000075 RID: 117 198 | public bool disableMobile; 199 | 200 | // Token: 0x04000076 RID: 118 201 | public bool disablePlusSign; 202 | 203 | // Token: 0x04000077 RID: 119 204 | public bool isUltimate; 205 | } 206 | } 207 | -------------------------------------------------------------------------------- /SnkrsCalendar.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Better_Nike_Bot 2 | { 3 | // Token: 0x02000051 RID: 81 4 | public partial class SnkrsCalendar : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x060002DA RID: 730 RVA: 0x00003642 File Offset: 0x00001842 7 | protected override void Dispose(bool disposing) 8 | { 9 | if (disposing && this.components != null) 10 | { 11 | this.components.Dispose(); 12 | } 13 | base.Dispose(disposing); 14 | } 15 | 16 | // Token: 0x060002DB RID: 731 RVA: 0x0002CE60 File Offset: 0x0002B060 17 | private void InitializeComponent() 18 | { 19 | this.objectListView1 = new global::BrightIdeasSoftware.ObjectListView(); 20 | this.olvColumn1 = new global::BrightIdeasSoftware.OLVColumn(); 21 | this.olvColumn2 = new global::BrightIdeasSoftware.OLVColumn(); 22 | this.olvColumn3 = new global::BrightIdeasSoftware.OLVColumn(); 23 | this.olvColumn9 = new global::BrightIdeasSoftware.OLVColumn(); 24 | this.olvColumn7 = new global::BrightIdeasSoftware.OLVColumn(); 25 | this.olvColumn4 = new global::BrightIdeasSoftware.OLVColumn(); 26 | this.olvColumn5 = new global::BrightIdeasSoftware.OLVColumn(); 27 | this.olvColumn6 = new global::BrightIdeasSoftware.OLVColumn(); 28 | this.olvColumn8 = new global::BrightIdeasSoftware.OLVColumn(); 29 | this.textBoxSearch = new global::System.Windows.Forms.TextBox(); 30 | ((global::System.ComponentModel.ISupportInitialize)this.objectListView1).BeginInit(); 31 | base.SuspendLayout(); 32 | this.objectListView1.AllColumns.Add(this.olvColumn1); 33 | this.objectListView1.AllColumns.Add(this.olvColumn2); 34 | this.objectListView1.AllColumns.Add(this.olvColumn3); 35 | this.objectListView1.AllColumns.Add(this.olvColumn9); 36 | this.objectListView1.AllColumns.Add(this.olvColumn7); 37 | this.objectListView1.AllColumns.Add(this.olvColumn4); 38 | this.objectListView1.AllColumns.Add(this.olvColumn5); 39 | this.objectListView1.AllColumns.Add(this.olvColumn6); 40 | this.objectListView1.AllColumns.Add(this.olvColumn8); 41 | this.objectListView1.AlternateRowBackColor = global::System.Drawing.Color.WhiteSmoke; 42 | this.objectListView1.Columns.AddRange(new global::System.Windows.Forms.ColumnHeader[] 43 | { 44 | this.olvColumn1, 45 | this.olvColumn2, 46 | this.olvColumn3, 47 | this.olvColumn9, 48 | this.olvColumn7, 49 | this.olvColumn4, 50 | this.olvColumn5, 51 | this.olvColumn6 52 | }); 53 | this.objectListView1.Dock = global::System.Windows.Forms.DockStyle.Fill; 54 | this.objectListView1.Font = new global::System.Drawing.Font("Microsoft Sans Serif", 9.75f, global::System.Drawing.FontStyle.Regular, global::System.Drawing.GraphicsUnit.Point, 0); 55 | this.objectListView1.FullRowSelect = true; 56 | this.objectListView1.Location = new global::System.Drawing.Point(0, 0); 57 | this.objectListView1.Name = "objectListView1"; 58 | this.objectListView1.ShowGroups = false; 59 | this.objectListView1.Size = new global::System.Drawing.Size(784, 462); 60 | this.objectListView1.TabIndex = 1; 61 | this.objectListView1.UseAlternatingBackColors = true; 62 | this.objectListView1.UseCompatibleStateImageBehavior = false; 63 | this.objectListView1.UseFiltering = true; 64 | this.objectListView1.View = global::System.Windows.Forms.View.Details; 65 | this.objectListView1.DoubleClick += new global::System.EventHandler(this.objectListView1_DoubleClick); 66 | this.olvColumn1.AspectName = "Name"; 67 | this.olvColumn1.CellPadding = null; 68 | this.olvColumn1.Text = "Name"; 69 | this.olvColumn1.Width = 219; 70 | this.olvColumn2.AspectName = "Date"; 71 | this.olvColumn2.AspectToStringFormat = ""; 72 | this.olvColumn2.CellPadding = null; 73 | this.olvColumn2.Text = "Date (Local)"; 74 | this.olvColumn2.Width = 125; 75 | this.olvColumn3.AspectName = "StyleCode"; 76 | this.olvColumn3.CellPadding = null; 77 | this.olvColumn3.Text = "Style Code"; 78 | this.olvColumn3.Width = 100; 79 | this.olvColumn9.AspectName = "PublishType"; 80 | this.olvColumn9.CellPadding = null; 81 | this.olvColumn9.Text = "PublishType"; 82 | this.olvColumn9.Width = 96; 83 | this.olvColumn7.AspectName = "SelectionEngine"; 84 | this.olvColumn7.CellPadding = null; 85 | this.olvColumn7.Text = "Selection Engine"; 86 | this.olvColumn7.Width = 116; 87 | this.olvColumn4.AspectName = "Available"; 88 | this.olvColumn4.CellPadding = null; 89 | this.olvColumn4.Text = "Available"; 90 | this.olvColumn4.Width = 120; 91 | this.olvColumn5.AspectName = "HeatLevel"; 92 | this.olvColumn5.CellPadding = null; 93 | this.olvColumn5.Text = "Heat Level"; 94 | this.olvColumn5.Width = 70; 95 | this.olvColumn6.AspectName = "WaitLineEnabled"; 96 | this.olvColumn6.CellPadding = null; 97 | this.olvColumn6.Text = "Wait Line Enabled"; 98 | this.olvColumn6.Width = 76; 99 | this.olvColumn8.AspectName = "Link"; 100 | this.olvColumn8.CellPadding = null; 101 | this.olvColumn8.DisplayIndex = 7; 102 | this.olvColumn8.IsVisible = false; 103 | this.olvColumn8.Text = "Link"; 104 | this.olvColumn8.Width = 113; 105 | this.textBoxSearch.Anchor = (global::System.Windows.Forms.AnchorStyles.Top | global::System.Windows.Forms.AnchorStyles.Right); 106 | this.textBoxSearch.Location = new global::System.Drawing.Point(561, 392); 107 | this.textBoxSearch.Name = "textBoxSearch"; 108 | this.textBoxSearch.Size = new global::System.Drawing.Size(211, 20); 109 | this.textBoxSearch.TabIndex = 2; 110 | this.textBoxSearch.Text = "Search products here..."; 111 | this.textBoxSearch.TextChanged += new global::System.EventHandler(this.textBoxSearch_TextChanged); 112 | this.textBoxSearch.Enter += new global::System.EventHandler(this.textBoxSearch_Enter); 113 | this.textBoxSearch.Leave += new global::System.EventHandler(this.textBoxSearch_Leave); 114 | base.AutoScaleDimensions = new global::System.Drawing.SizeF(6f, 13f); 115 | base.AutoScaleMode = global::System.Windows.Forms.AutoScaleMode.Font; 116 | base.ClientSize = new global::System.Drawing.Size(784, 462); 117 | base.Controls.Add(this.textBoxSearch); 118 | base.Controls.Add(this.objectListView1); 119 | base.Name = "SnkrsCalendar"; 120 | this.Text = "SNKRS Calendar (Double click row to use)"; 121 | base.Load += new global::System.EventHandler(this.SnkrsCalendar_Load); 122 | ((global::System.ComponentModel.ISupportInitialize)this.objectListView1).EndInit(); 123 | base.ResumeLayout(false); 124 | base.PerformLayout(); 125 | } 126 | 127 | // Token: 0x040002E2 RID: 738 128 | private global::System.ComponentModel.IContainer components; 129 | 130 | // Token: 0x040002E3 RID: 739 131 | private global::BrightIdeasSoftware.ObjectListView objectListView1; 132 | 133 | // Token: 0x040002E4 RID: 740 134 | private global::BrightIdeasSoftware.OLVColumn olvColumn1; 135 | 136 | // Token: 0x040002E5 RID: 741 137 | private global::BrightIdeasSoftware.OLVColumn olvColumn2; 138 | 139 | // Token: 0x040002E6 RID: 742 140 | private global::BrightIdeasSoftware.OLVColumn olvColumn3; 141 | 142 | // Token: 0x040002E7 RID: 743 143 | private global::BrightIdeasSoftware.OLVColumn olvColumn4; 144 | 145 | // Token: 0x040002E8 RID: 744 146 | private global::BrightIdeasSoftware.OLVColumn olvColumn7; 147 | 148 | // Token: 0x040002E9 RID: 745 149 | private global::BrightIdeasSoftware.OLVColumn olvColumn5; 150 | 151 | // Token: 0x040002EA RID: 746 152 | private global::BrightIdeasSoftware.OLVColumn olvColumn6; 153 | 154 | // Token: 0x040002EB RID: 747 155 | private global::BrightIdeasSoftware.OLVColumn olvColumn8; 156 | 157 | // Token: 0x040002EC RID: 748 158 | private global::BrightIdeasSoftware.OLVColumn olvColumn9; 159 | 160 | // Token: 0x040002ED RID: 749 161 | private global::System.Windows.Forms.TextBox textBoxSearch; 162 | } 163 | } 164 | -------------------------------------------------------------------------------- /CreditCardProfile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text; 3 | using Newtonsoft.Json; 4 | 5 | namespace Better_Nike_Bot 6 | { 7 | // Token: 0x0200000E RID: 14 8 | public class CreditCardProfile 9 | { 10 | // Token: 0x1700000F RID: 15 11 | // (get) Token: 0x06000060 RID: 96 RVA: 0x000023AE File Offset: 0x000005AE 12 | // (set) Token: 0x06000061 RID: 97 RVA: 0x000023B6 File Offset: 0x000005B6 13 | public string Name { get; set; } 14 | 15 | // Token: 0x17000010 RID: 16 16 | // (get) Token: 0x06000062 RID: 98 RVA: 0x000023BF File Offset: 0x000005BF 17 | // (set) Token: 0x06000063 RID: 99 RVA: 0x000023C7 File Offset: 0x000005C7 18 | public string BillingFirstName { get; set; } 19 | 20 | // Token: 0x17000011 RID: 17 21 | // (get) Token: 0x06000064 RID: 100 RVA: 0x000023D0 File Offset: 0x000005D0 22 | // (set) Token: 0x06000065 RID: 101 RVA: 0x000023D8 File Offset: 0x000005D8 23 | public string BillingLastName { get; set; } 24 | 25 | // Token: 0x17000012 RID: 18 26 | // (get) Token: 0x06000066 RID: 102 RVA: 0x000023E1 File Offset: 0x000005E1 27 | // (set) Token: 0x06000067 RID: 103 RVA: 0x000023E9 File Offset: 0x000005E9 28 | public string BillingAddress1 { get; set; } 29 | 30 | // Token: 0x17000013 RID: 19 31 | // (get) Token: 0x06000068 RID: 104 RVA: 0x000023F2 File Offset: 0x000005F2 32 | // (set) Token: 0x06000069 RID: 105 RVA: 0x000023FA File Offset: 0x000005FA 33 | public string BillingAddress2 { get; set; } 34 | 35 | // Token: 0x17000014 RID: 20 36 | // (get) Token: 0x0600006A RID: 106 RVA: 0x00002403 File Offset: 0x00000603 37 | // (set) Token: 0x0600006B RID: 107 RVA: 0x0000240B File Offset: 0x0000060B 38 | public string BillingAddress3 { get; set; } 39 | 40 | // Token: 0x17000015 RID: 21 41 | // (get) Token: 0x0600006C RID: 108 RVA: 0x00002414 File Offset: 0x00000614 42 | // (set) Token: 0x0600006D RID: 109 RVA: 0x0000241C File Offset: 0x0000061C 43 | public string BillingZipCode { get; set; } 44 | 45 | // Token: 0x17000016 RID: 22 46 | // (get) Token: 0x0600006E RID: 110 RVA: 0x00002425 File Offset: 0x00000625 47 | // (set) Token: 0x0600006F RID: 111 RVA: 0x0000242D File Offset: 0x0000062D 48 | public string BillingPhone { get; set; } 49 | 50 | // Token: 0x17000017 RID: 23 51 | // (get) Token: 0x06000070 RID: 112 RVA: 0x00002436 File Offset: 0x00000636 52 | // (set) Token: 0x06000071 RID: 113 RVA: 0x0000243E File Offset: 0x0000063E 53 | public string BillingCity { get; set; } 54 | 55 | // Token: 0x17000018 RID: 24 56 | // (get) Token: 0x06000072 RID: 114 RVA: 0x00002447 File Offset: 0x00000647 57 | // (set) Token: 0x06000073 RID: 115 RVA: 0x0000244F File Offset: 0x0000064F 58 | public string BillingState { get; set; } 59 | 60 | // Token: 0x17000019 RID: 25 61 | // (get) Token: 0x06000074 RID: 116 RVA: 0x00002458 File Offset: 0x00000658 62 | // (set) Token: 0x06000075 RID: 117 RVA: 0x00002460 File Offset: 0x00000660 63 | public string BillingStateJP { get; set; } 64 | 65 | // Token: 0x1700001A RID: 26 66 | // (get) Token: 0x06000076 RID: 118 RVA: 0x00002469 File Offset: 0x00000669 67 | // (set) Token: 0x06000077 RID: 119 RVA: 0x00002471 File Offset: 0x00000671 68 | public string ShippingFirstName { get; set; } 69 | 70 | // Token: 0x1700001B RID: 27 71 | // (get) Token: 0x06000078 RID: 120 RVA: 0x0000247A File Offset: 0x0000067A 72 | // (set) Token: 0x06000079 RID: 121 RVA: 0x00002482 File Offset: 0x00000682 73 | public string ShippingLastName { get; set; } 74 | 75 | // Token: 0x1700001C RID: 28 76 | // (get) Token: 0x0600007A RID: 122 RVA: 0x0000248B File Offset: 0x0000068B 77 | // (set) Token: 0x0600007B RID: 123 RVA: 0x00002493 File Offset: 0x00000693 78 | public string ShippingAddress1 { get; set; } 79 | 80 | // Token: 0x1700001D RID: 29 81 | // (get) Token: 0x0600007C RID: 124 RVA: 0x0000249C File Offset: 0x0000069C 82 | // (set) Token: 0x0600007D RID: 125 RVA: 0x000024A4 File Offset: 0x000006A4 83 | public string ShippingAddress2 { get; set; } 84 | 85 | // Token: 0x1700001E RID: 30 86 | // (get) Token: 0x0600007E RID: 126 RVA: 0x000024AD File Offset: 0x000006AD 87 | // (set) Token: 0x0600007F RID: 127 RVA: 0x000024B5 File Offset: 0x000006B5 88 | public string ShippingAddress3 { get; set; } 89 | 90 | // Token: 0x1700001F RID: 31 91 | // (get) Token: 0x06000080 RID: 128 RVA: 0x000024BE File Offset: 0x000006BE 92 | // (set) Token: 0x06000081 RID: 129 RVA: 0x000024C6 File Offset: 0x000006C6 93 | public string ShippingZipCode { get; set; } 94 | 95 | // Token: 0x17000020 RID: 32 96 | // (get) Token: 0x06000082 RID: 130 RVA: 0x000024CF File Offset: 0x000006CF 97 | // (set) Token: 0x06000083 RID: 131 RVA: 0x000024D7 File Offset: 0x000006D7 98 | public string ShippingPhone { get; set; } 99 | 100 | // Token: 0x17000021 RID: 33 101 | // (get) Token: 0x06000084 RID: 132 RVA: 0x000024E0 File Offset: 0x000006E0 102 | // (set) Token: 0x06000085 RID: 133 RVA: 0x000024E8 File Offset: 0x000006E8 103 | public string ShippingCity { get; set; } 104 | 105 | // Token: 0x17000022 RID: 34 106 | // (get) Token: 0x06000086 RID: 134 RVA: 0x000024F1 File Offset: 0x000006F1 107 | // (set) Token: 0x06000087 RID: 135 RVA: 0x000024F9 File Offset: 0x000006F9 108 | public string ShippingState { get; set; } 109 | 110 | // Token: 0x17000023 RID: 35 111 | // (get) Token: 0x06000088 RID: 136 RVA: 0x00002502 File Offset: 0x00000702 112 | // (set) Token: 0x06000089 RID: 137 RVA: 0x0000250A File Offset: 0x0000070A 113 | public string ShippingStateJP { get; set; } 114 | 115 | // Token: 0x17000024 RID: 36 116 | // (get) Token: 0x0600008A RID: 138 RVA: 0x00002513 File Offset: 0x00000713 117 | // (set) Token: 0x0600008B RID: 139 RVA: 0x0000251B File Offset: 0x0000071B 118 | public string CreditCardType { get; set; } 119 | 120 | // Token: 0x17000025 RID: 37 121 | // (get) Token: 0x0600008C RID: 140 RVA: 0x00002524 File Offset: 0x00000724 122 | // (set) Token: 0x0600008D RID: 141 RVA: 0x0000252C File Offset: 0x0000072C 123 | public string CreditCardNumber { get; set; } 124 | 125 | // Token: 0x17000026 RID: 38 126 | // (get) Token: 0x0600008E RID: 142 RVA: 0x00002535 File Offset: 0x00000735 127 | // (set) Token: 0x0600008F RID: 143 RVA: 0x0000253D File Offset: 0x0000073D 128 | public string CreditCardExpiryMonth { get; set; } 129 | 130 | // Token: 0x17000027 RID: 39 131 | // (get) Token: 0x06000090 RID: 144 RVA: 0x00002546 File Offset: 0x00000746 132 | // (set) Token: 0x06000091 RID: 145 RVA: 0x0000254E File Offset: 0x0000074E 133 | public string CreditCardExpiryYear { get; set; } 134 | 135 | // Token: 0x17000028 RID: 40 136 | // (get) Token: 0x06000092 RID: 146 RVA: 0x00002557 File Offset: 0x00000757 137 | // (set) Token: 0x06000093 RID: 147 RVA: 0x0000255F File Offset: 0x0000075F 138 | public string CreditCardCvv { get; set; } 139 | 140 | // Token: 0x17000029 RID: 41 141 | // (get) Token: 0x06000094 RID: 148 RVA: 0x00002568 File Offset: 0x00000768 142 | // (set) Token: 0x06000095 RID: 149 RVA: 0x00002570 File Offset: 0x00000770 143 | public int MaxCheckouts { get; set; } 144 | 145 | // Token: 0x1700002A RID: 42 146 | // (get) Token: 0x06000096 RID: 150 RVA: 0x0000B09C File Offset: 0x0000929C 147 | [JsonIgnore] 148 | public string CreditCardNumberFormatted 149 | { 150 | get 151 | { 152 | StringBuilder stringBuilder = new StringBuilder(); 153 | for (int i = 1; i <= this.CreditCardNumber.Length; i++) 154 | { 155 | stringBuilder.Append(this.CreditCardNumber[i - 1]); 156 | if (i % 4 == 0 && i != this.CreditCardNumber.Length) 157 | { 158 | stringBuilder.Append(" "); 159 | } 160 | } 161 | return stringBuilder.ToString(); 162 | } 163 | } 164 | 165 | // Token: 0x0400009A RID: 154 166 | [JsonIgnore] 167 | public int CheckoutCount; 168 | 169 | // Token: 0x0400009B RID: 155 170 | [JsonIgnore] 171 | public object Lock; 172 | } 173 | } 174 | -------------------------------------------------------------------------------- /DataForm1.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Better_Nike_Bot 2 | { 3 | // Token: 0x02000010 RID: 16 4 | public partial class DataForm1 : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x060000AF RID: 175 RVA: 0x000026F1 File Offset: 0x000008F1 7 | protected override void Dispose(bool disposing) 8 | { 9 | if (disposing && this.components != null) 10 | { 11 | this.components.Dispose(); 12 | } 13 | base.Dispose(disposing); 14 | } 15 | 16 | // Token: 0x060000B0 RID: 176 RVA: 0x0000B664 File Offset: 0x00009864 17 | private void InitializeComponent() 18 | { 19 | this.labelMessage = new global::System.Windows.Forms.Label(); 20 | this.textBox1 = new global::System.Windows.Forms.TextBox(); 21 | this.buttonOK = new global::System.Windows.Forms.Button(); 22 | this.labelLines = new global::System.Windows.Forms.Label(); 23 | this.checkBox1 = new global::System.Windows.Forms.CheckBox(); 24 | this.radioButton2 = new global::System.Windows.Forms.RadioButton(); 25 | this.radioButton1 = new global::System.Windows.Forms.RadioButton(); 26 | this.checkBox2 = new global::System.Windows.Forms.CheckBox(); 27 | this.label1 = new global::System.Windows.Forms.Label(); 28 | base.SuspendLayout(); 29 | this.labelMessage.AutoSize = true; 30 | this.labelMessage.Location = new global::System.Drawing.Point(12, 9); 31 | this.labelMessage.Name = "labelMessage"; 32 | this.labelMessage.Size = new global::System.Drawing.Size(53, 13); 33 | this.labelMessage.TabIndex = 0; 34 | this.labelMessage.Text = "Message:"; 35 | this.textBox1.Anchor = (global::System.Windows.Forms.AnchorStyles.Top | global::System.Windows.Forms.AnchorStyles.Bottom | global::System.Windows.Forms.AnchorStyles.Left | global::System.Windows.Forms.AnchorStyles.Right); 36 | this.textBox1.Location = new global::System.Drawing.Point(15, 29); 37 | this.textBox1.Name = "textBox1"; 38 | this.textBox1.ScrollBars = global::System.Windows.Forms.ScrollBars.Both; 39 | this.textBox1.Size = new global::System.Drawing.Size(500, 20); 40 | this.textBox1.TabIndex = 1; 41 | this.textBox1.TextChanged += new global::System.EventHandler(this.textBox1_TextChanged); 42 | this.textBox1.KeyDown += new global::System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown); 43 | this.buttonOK.Anchor = (global::System.Windows.Forms.AnchorStyles.Bottom | global::System.Windows.Forms.AnchorStyles.Left); 44 | this.buttonOK.DialogResult = global::System.Windows.Forms.DialogResult.OK; 45 | this.buttonOK.Location = new global::System.Drawing.Point(15, 91); 46 | this.buttonOK.Name = "buttonOK"; 47 | this.buttonOK.Size = new global::System.Drawing.Size(75, 23); 48 | this.buttonOK.TabIndex = 2; 49 | this.buttonOK.Text = "OK"; 50 | this.buttonOK.UseVisualStyleBackColor = true; 51 | this.labelLines.Anchor = (global::System.Windows.Forms.AnchorStyles.Bottom | global::System.Windows.Forms.AnchorStyles.Right); 52 | this.labelLines.AutoSize = true; 53 | this.labelLines.Location = new global::System.Drawing.Point(105, 96); 54 | this.labelLines.Name = "labelLines"; 55 | this.labelLines.Size = new global::System.Drawing.Size(0, 13); 56 | this.labelLines.TabIndex = 3; 57 | this.checkBox1.Anchor = (global::System.Windows.Forms.AnchorStyles.Bottom | global::System.Windows.Forms.AnchorStyles.Left); 58 | this.checkBox1.AutoSize = true; 59 | this.checkBox1.Location = new global::System.Drawing.Point(14, 55); 60 | this.checkBox1.Name = "checkBox1"; 61 | this.checkBox1.Size = new global::System.Drawing.Size(80, 17); 62 | this.checkBox1.TabIndex = 4; 63 | this.checkBox1.Text = "checkBox1"; 64 | this.checkBox1.UseVisualStyleBackColor = true; 65 | this.checkBox1.Visible = false; 66 | this.checkBox1.CheckedChanged += new global::System.EventHandler(this.checkBox1_CheckedChanged); 67 | this.radioButton2.Anchor = (global::System.Windows.Forms.AnchorStyles.Bottom | global::System.Windows.Forms.AnchorStyles.Left); 68 | this.radioButton2.AutoSize = true; 69 | this.radioButton2.Enabled = false; 70 | this.radioButton2.Location = new global::System.Drawing.Point(376, 78); 71 | this.radioButton2.Name = "radioButton2"; 72 | this.radioButton2.Size = new global::System.Drawing.Size(116, 17); 73 | this.radioButton2.TabIndex = 11; 74 | this.radioButton2.TabStop = true; 75 | this.radioButton2.Text = "Test for Nike Snkrs"; 76 | this.radioButton2.UseVisualStyleBackColor = true; 77 | this.radioButton2.CheckedChanged += new global::System.EventHandler(this.radioButton2_CheckedChanged); 78 | this.radioButton1.Anchor = (global::System.Windows.Forms.AnchorStyles.Bottom | global::System.Windows.Forms.AnchorStyles.Left); 79 | this.radioButton1.AutoSize = true; 80 | this.radioButton1.Enabled = false; 81 | this.radioButton1.Location = new global::System.Drawing.Point(376, 55); 82 | this.radioButton1.Name = "radioButton1"; 83 | this.radioButton1.Size = new global::System.Drawing.Size(109, 17); 84 | this.radioButton1.TabIndex = 10; 85 | this.radioButton1.TabStop = true; 86 | this.radioButton1.Text = "Test for Nike.com"; 87 | this.radioButton1.UseVisualStyleBackColor = true; 88 | this.radioButton1.CheckedChanged += new global::System.EventHandler(this.radioButton1_CheckedChanged); 89 | this.checkBox2.Anchor = (global::System.Windows.Forms.AnchorStyles.Bottom | global::System.Windows.Forms.AnchorStyles.Left); 90 | this.checkBox2.AutoSize = true; 91 | this.checkBox2.Location = new global::System.Drawing.Point(200, 55); 92 | this.checkBox2.Name = "checkBox2"; 93 | this.checkBox2.Size = new global::System.Drawing.Size(80, 17); 94 | this.checkBox2.TabIndex = 9; 95 | this.checkBox2.Text = "checkBox2"; 96 | this.checkBox2.UseVisualStyleBackColor = true; 97 | this.checkBox2.Visible = false; 98 | this.checkBox2.CheckedChanged += new global::System.EventHandler(this.checkBox2_CheckedChanged); 99 | this.label1.Anchor = (global::System.Windows.Forms.AnchorStyles.Bottom | global::System.Windows.Forms.AnchorStyles.Right); 100 | this.label1.AutoSize = true; 101 | this.label1.Location = new global::System.Drawing.Point(109, 97); 102 | this.label1.Name = "label1"; 103 | this.label1.Size = new global::System.Drawing.Size(0, 13); 104 | this.label1.TabIndex = 8; 105 | base.AcceptButton = this.buttonOK; 106 | base.AutoScaleDimensions = new global::System.Drawing.SizeF(6f, 13f); 107 | base.AutoScaleMode = global::System.Windows.Forms.AutoScaleMode.Font; 108 | base.ClientSize = new global::System.Drawing.Size(527, 120); 109 | base.Controls.Add(this.radioButton2); 110 | base.Controls.Add(this.radioButton1); 111 | base.Controls.Add(this.checkBox2); 112 | base.Controls.Add(this.label1); 113 | base.Controls.Add(this.checkBox1); 114 | base.Controls.Add(this.labelLines); 115 | base.Controls.Add(this.buttonOK); 116 | base.Controls.Add(this.textBox1); 117 | base.Controls.Add(this.labelMessage); 118 | base.Name = "DataForm1"; 119 | this.Text = "Title"; 120 | base.ResumeLayout(false); 121 | base.PerformLayout(); 122 | } 123 | 124 | // Token: 0x040000BD RID: 189 125 | private global::System.ComponentModel.IContainer components; 126 | 127 | // Token: 0x040000BE RID: 190 128 | private global::System.Windows.Forms.Label labelMessage; 129 | 130 | // Token: 0x040000BF RID: 191 131 | private global::System.Windows.Forms.TextBox textBox1; 132 | 133 | // Token: 0x040000C0 RID: 192 134 | private global::System.Windows.Forms.Button buttonOK; 135 | 136 | // Token: 0x040000C1 RID: 193 137 | private global::System.Windows.Forms.Label labelLines; 138 | 139 | // Token: 0x040000C2 RID: 194 140 | private global::System.Windows.Forms.CheckBox checkBox1; 141 | 142 | // Token: 0x040000C3 RID: 195 143 | private global::System.Windows.Forms.RadioButton radioButton2; 144 | 145 | // Token: 0x040000C4 RID: 196 146 | private global::System.Windows.Forms.RadioButton radioButton1; 147 | 148 | // Token: 0x040000C5 RID: 197 149 | private global::System.Windows.Forms.CheckBox checkBox2; 150 | 151 | // Token: 0x040000C6 RID: 198 152 | private global::System.Windows.Forms.Label label1; 153 | } 154 | } 155 | -------------------------------------------------------------------------------- /Class0.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Globalization; 4 | using System.IO; 5 | using System.Reflection; 6 | 7 | namespace ns0 8 | { 9 | // Token: 0x0200000A RID: 10 10 | internal class Class0 11 | { 12 | // Token: 0x06000043 RID: 67 RVA: 0x00007EA4 File Offset: 0x000060A4 13 | internal static void smethod_0() 14 | { 15 | string text = "ᄊᄇᄈミヤレフラᅮ￟ᄅレヘフヨミムᅡᅫ￑ᅬ￑ᅬ￑ᅬᅮ￟ᄐハモヒハヘレᅡムレハヒベモᅮ￟ᆵハンモヨワᄡレニᆱミヤレムᅡムハモモ゚ムᄏᄊハハᆳᅬムヨ゙リᄋヨ゙゙ムᆰユᄎᆱᆬ하ᅡ゚ᄊᄇᄈミヤレフラ￑ᄎヌヒレムフヨミムフᅮ￟ᄅレヘフヨミムᅡᅫ￑ᅬ￑ᅬ￑ᅬᅮ￟ᄐハモヒハヘレᅡムレハヒベモᅮ￟ᆵハンモヨワᄡレニᆱミヤレムᅡムハモモ゚ヒヨ￉ᄏ￐ルリᄑᆱᆭ￈ᄚフ쾨ᄄンヘᅯᄇヘネᅡᅡ゚ᄊᄇᄈミヤレフラ￑ᄋヒヒマᆰヒヨモヨヒニᅮ￟ᄅレヘフヨミムᅡᅫ￑ᅬ￑ᅬ￑ᅬᅮ￟ᄐハモヒハヘレᅡムレハヒベモᅮ￟ᆵハンモヨワᄡレニᆱミヤレムᅡムハモモ゚ᆬヤᅬニロレ￐퐈ᅪ゙ᆱᄍᄡᄏルヨᄌᆳᅥᄡネᅡᅡ゚ᄊᄇᄈミヤレフラ￑ᆳ゙ムロミメᆰヒヨモヨヒニᅮ￟ᄅレヘフヨミムᅡᅫ￑ᅬ￑ᅬ￑ᅬᅮ￟ᄐハモヒハヘレᅡムレハヒベモᅮ￟ᆵハンモヨワᄡレニᆱミヤレムᅡムハモモ゚￉ムフルᄃハユᄍᄇヌホヨナᄒᄄᄡᆲᄡヘᆳ￉ネᅡᅡ゚ᄊᄇᄈミヤレフラ￑ᄋヒヒマᅮ￟ᄅレヘフヨミムᅡᅫ￑ᅬ￑ᅬ￑ᅬᅮ￟ᄐハモヒハヘレᅡムレハヒベモᅮ￟ᆵハンモヨワᄡレニᆱミヤレムᅡムハモモ゚ᄡᄍᆱ또ミネᅦモハラネᄋノレルᅩヤマᄎᄍネᅡᅡ"; 16 | char[] array = text.ToCharArray(); 17 | for (int i = 0; i < array.Length; i++) 18 | { 19 | array[i] = ~array[i]; 20 | } 21 | text = new string(array); 22 | string[] array2 = text.Split(new char[] 23 | { 24 | '`' 25 | }); 26 | if (array2 != null && array2.Length >= 0) 27 | { 28 | int j = 0; 29 | while (j < array2.Length) 30 | { 31 | if (array2[j + 1].StartsWith("~")) 32 | { 33 | try 34 | { 35 | int num = array2[j + 1].IndexOf('~', 1); 36 | int num2 = int.Parse(array2[j + 1].Substring(1, num - 1), CultureInfo.InvariantCulture); 37 | Assembly executingAssembly = Assembly.GetExecutingAssembly(); 38 | string text2 = Path.Combine(Path.GetDirectoryName(executingAssembly.Location), array2[j]); 39 | if (!File.Exists(text2) || new FileInfo(text2).Length != (long)num2) 40 | { 41 | foreach (string text3 in executingAssembly.GetManifestResourceNames()) 42 | { 43 | if (text3 == array2[j + 1]) 44 | { 45 | Stream manifestResourceStream = executingAssembly.GetManifestResourceStream(text3); 46 | byte[] array3 = Class1.smethod_3(97L, manifestResourceStream); 47 | using (FileStream fileStream = new FileStream(text2, FileMode.Create, FileAccess.Write)) 48 | { 49 | fileStream.Write(array3, 0, array3.Length); 50 | } 51 | manifestResourceStream.Close(); 52 | } 53 | } 54 | } 55 | goto IL_166; 56 | } 57 | catch 58 | { 59 | goto IL_166; 60 | } 61 | goto IL_152; 62 | } 63 | goto IL_152; 64 | IL_166: 65 | j += 2; 66 | continue; 67 | IL_152: 68 | Class0.hashtable_1[array2[j]] = array2[j + 1]; 69 | goto IL_166; 70 | } 71 | } 72 | AppDomain.CurrentDomain.AssemblyResolve += Class0.smethod_3; 73 | } 74 | 75 | // Token: 0x06000044 RID: 68 RVA: 0x00008054 File Offset: 0x00006254 76 | private static string smethod_1(byte[] byte_0, string string_0, string string_1, string string_2) 77 | { 78 | string_0 = Path.Combine(Path.GetTempPath(), string_0); 79 | string text = Path.Combine(string_0, string_1 + string_2); 80 | if (!File.Exists(text) || (long)byte_0.Length != new FileInfo(text).Length) 81 | { 82 | Directory.CreateDirectory(string_0); 83 | FileStream fileStream = new FileStream(text, FileMode.Create, FileAccess.Write); 84 | fileStream.Write(byte_0, 0, byte_0.Length); 85 | fileStream.Close(); 86 | } 87 | return text; 88 | } 89 | 90 | // Token: 0x06000045 RID: 69 RVA: 0x000080BC File Offset: 0x000062BC 91 | private static bool smethod_2(string string_0, string string_1) 92 | { 93 | try 94 | { 95 | string[] array = string_0.Split(new char[] 96 | { 97 | ',' 98 | }); 99 | string[] array2 = string_1.Split(new char[] 100 | { 101 | ',' 102 | }); 103 | for (int i = 0; i < array.Length; i++) 104 | { 105 | array[i] = array[i].Trim(); 106 | } 107 | for (int j = 0; j < array2.Length; j++) 108 | { 109 | array2[j] = array2[j].Trim(); 110 | } 111 | string[] array3 = array; 112 | int k = 0; 113 | IL_A1: 114 | while (k < array3.Length) 115 | { 116 | string a = array3[k]; 117 | bool flag = false; 118 | int l = 0; 119 | while (l < array2.Length) 120 | { 121 | if (!string.Equals(a, array2[l], StringComparison.CurrentCultureIgnoreCase)) 122 | { 123 | l++; 124 | } 125 | else 126 | { 127 | flag = true; 128 | IL_97: 129 | if (flag) 130 | { 131 | k++; 132 | goto IL_A1; 133 | } 134 | return false; 135 | } 136 | } 137 | goto IL_97; 138 | } 139 | return true; 140 | } 141 | catch 142 | { 143 | } 144 | return false; 145 | } 146 | 147 | // Token: 0x06000046 RID: 70 RVA: 0x00008194 File Offset: 0x00006394 148 | private static Assembly smethod_3(object object_0, ResolveEventArgs resolveEventArgs_0) 149 | { 150 | Assembly result; 151 | lock (Class0.hashtable_0) 152 | { 153 | Assembly assembly = null; 154 | string name = resolveEventArgs_0.Name; 155 | string text = string.Empty; 156 | foreach (object obj2 in Class0.hashtable_1.Keys) 157 | { 158 | string text2 = (string)obj2; 159 | if (Class0.smethod_2(name, text2)) 160 | { 161 | assembly = (Class0.hashtable_0[text2] as Assembly); 162 | if (assembly != null) 163 | { 164 | return assembly; 165 | } 166 | text = (Class0.hashtable_1[text2] as string); 167 | break; 168 | } 169 | } 170 | if (text.Length == 0) 171 | { 172 | result = null; 173 | } 174 | else 175 | { 176 | Assembly executingAssembly = Assembly.GetExecutingAssembly(); 177 | foreach (string text3 in executingAssembly.GetManifestResourceNames()) 178 | { 179 | if (text3 == text) 180 | { 181 | Stream manifestResourceStream = executingAssembly.GetManifestResourceStream(text3); 182 | byte[] array = Class1.smethod_3(97L, manifestResourceStream); 183 | byte[] array2 = null; 184 | try 185 | { 186 | text += "#"; 187 | foreach (string text4 in executingAssembly.GetManifestResourceNames()) 188 | { 189 | if (text4 == text) 190 | { 191 | Stream manifestResourceStream2 = executingAssembly.GetManifestResourceStream(text4); 192 | array2 = Class1.smethod_3(97L, manifestResourceStream2); 193 | } 194 | } 195 | } 196 | catch (Exception) 197 | { 198 | } 199 | bool flag = false; 200 | try 201 | { 202 | if (array2 == null) 203 | { 204 | assembly = Assembly.Load(array); 205 | } 206 | else 207 | { 208 | try 209 | { 210 | assembly = Assembly.Load(array, array2); 211 | } 212 | catch (Exception) 213 | { 214 | assembly = Assembly.Load(array); 215 | } 216 | } 217 | } 218 | catch (FileLoadException) 219 | { 220 | flag = true; 221 | } 222 | catch (BadImageFormatException) 223 | { 224 | flag = true; 225 | } 226 | if (flag) 227 | { 228 | string string_ = Class0.smethod_4(name); 229 | string path = Class0.smethod_1(array, text, string_, ".dll"); 230 | if (array2 != null) 231 | { 232 | Class0.smethod_1(array, text, string_, ".pdb"); 233 | } 234 | assembly = Assembly.LoadFile(path); 235 | } 236 | Class0.hashtable_0[name] = assembly; 237 | return assembly; 238 | } 239 | } 240 | result = null; 241 | } 242 | } 243 | return result; 244 | } 245 | 246 | // Token: 0x06000047 RID: 71 RVA: 0x00008410 File Offset: 0x00006610 247 | private static string smethod_4(string string_0) 248 | { 249 | int num = string_0.IndexOf(','); 250 | if (num >= 0) 251 | { 252 | string_0 = string_0.Substring(0, num); 253 | } 254 | return string_0; 255 | } 256 | 257 | // Token: 0x04000064 RID: 100 258 | private static readonly Hashtable hashtable_0 = new Hashtable(); 259 | 260 | // Token: 0x04000065 RID: 101 261 | private static readonly Hashtable hashtable_1 = new Hashtable(); 262 | } 263 | } 264 | -------------------------------------------------------------------------------- /AddedProductsForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace Better_Nike_Bot 2 | { 3 | // Token: 0x0200001F RID: 31 4 | public partial class AddedProductsForm : global::System.Windows.Forms.Form 5 | { 6 | // Token: 0x0600013F RID: 319 RVA: 0x00002BBC File Offset: 0x00000DBC 7 | protected override void Dispose(bool disposing) 8 | { 9 | if (disposing && this.components != null) 10 | { 11 | this.components.Dispose(); 12 | } 13 | base.Dispose(disposing); 14 | } 15 | 16 | // Token: 0x06000140 RID: 320 RVA: 0x00015BFC File Offset: 0x00013DFC 17 | private void InitializeComponent() 18 | { 19 | this.components = new global::System.ComponentModel.Container(); 20 | this.objectListView1 = new global::BrightIdeasSoftware.ObjectListView(); 21 | this.olvColumn8 = new global::BrightIdeasSoftware.OLVColumn(); 22 | this.olvColumn9 = new global::BrightIdeasSoftware.OLVColumn(); 23 | this.olvColumn2 = new global::BrightIdeasSoftware.OLVColumn(); 24 | this.olvColumn10 = new global::BrightIdeasSoftware.OLVColumn(); 25 | this.olvColumn1 = new global::BrightIdeasSoftware.OLVColumn(); 26 | this.olvColumn3 = new global::BrightIdeasSoftware.OLVColumn(); 27 | this.contextMenuStrip1 = new global::System.Windows.Forms.ContextMenuStrip(this.components); 28 | this.copyUsernameToolStripMenuItem = new global::System.Windows.Forms.ToolStripMenuItem(); 29 | this.copyPasswordToolStripMenuItem = new global::System.Windows.Forms.ToolStripMenuItem(); 30 | this.copySnkrsUrlToolStripMenuItem = new global::System.Windows.Forms.ToolStripMenuItem(); 31 | this.openInBrowserToolStripMenuItem = new global::System.Windows.Forms.ToolStripMenuItem(); 32 | this.exportToJsonToolStripMenuItem = new global::System.Windows.Forms.ToolStripMenuItem(); 33 | ((global::System.ComponentModel.ISupportInitialize)this.objectListView1).BeginInit(); 34 | this.contextMenuStrip1.SuspendLayout(); 35 | base.SuspendLayout(); 36 | this.objectListView1.AllColumns.Add(this.olvColumn8); 37 | this.objectListView1.AllColumns.Add(this.olvColumn9); 38 | this.objectListView1.AllColumns.Add(this.olvColumn2); 39 | this.objectListView1.AllColumns.Add(this.olvColumn10); 40 | this.objectListView1.AllColumns.Add(this.olvColumn1); 41 | this.objectListView1.AllColumns.Add(this.olvColumn3); 42 | this.objectListView1.Columns.AddRange(new global::System.Windows.Forms.ColumnHeader[] 43 | { 44 | this.olvColumn8, 45 | this.olvColumn9, 46 | this.olvColumn2, 47 | this.olvColumn10, 48 | this.olvColumn1, 49 | this.olvColumn3 50 | }); 51 | this.objectListView1.Dock = global::System.Windows.Forms.DockStyle.Fill; 52 | this.objectListView1.Location = new global::System.Drawing.Point(0, 0); 53 | this.objectListView1.Name = "objectListView1"; 54 | this.objectListView1.ShowGroups = false; 55 | this.objectListView1.Size = new global::System.Drawing.Size(587, 258); 56 | this.objectListView1.TabIndex = 1; 57 | this.objectListView1.UseCompatibleStateImageBehavior = false; 58 | this.objectListView1.UseFiltering = true; 59 | this.objectListView1.View = global::System.Windows.Forms.View.Details; 60 | this.objectListView1.CellRightClick += new global::System.EventHandler(this.objectListView1_CellRightClick); 61 | this.olvColumn8.AspectName = "TimeStamp"; 62 | this.olvColumn8.CellPadding = null; 63 | this.olvColumn8.Text = "DateTime"; 64 | this.olvColumn8.Width = 100; 65 | this.olvColumn9.AspectName = "ProductName"; 66 | this.olvColumn9.CellPadding = null; 67 | this.olvColumn9.Text = "Product Name"; 68 | this.olvColumn9.Width = 174; 69 | this.olvColumn2.AspectName = "StyleCode"; 70 | this.olvColumn2.CellPadding = null; 71 | this.olvColumn2.Text = "Style Code"; 72 | this.olvColumn10.AspectName = "ProductType"; 73 | this.olvColumn10.CellPadding = null; 74 | this.olvColumn10.Text = "Product Type"; 75 | this.olvColumn10.Width = 108; 76 | this.olvColumn1.AspectName = "EmailAddress"; 77 | this.olvColumn1.CellPadding = null; 78 | this.olvColumn1.Text = "Email Address"; 79 | this.olvColumn1.Width = 101; 80 | this.olvColumn3.AspectName = "Size"; 81 | this.olvColumn3.CellPadding = null; 82 | this.olvColumn3.Text = "Size"; 83 | this.olvColumn3.Width = 41; 84 | this.contextMenuStrip1.Items.AddRange(new global::System.Windows.Forms.ToolStripItem[] 85 | { 86 | this.copyUsernameToolStripMenuItem, 87 | this.copyPasswordToolStripMenuItem, 88 | this.copySnkrsUrlToolStripMenuItem, 89 | this.openInBrowserToolStripMenuItem, 90 | this.exportToJsonToolStripMenuItem 91 | }); 92 | this.contextMenuStrip1.Name = "contextMenuStrip1"; 93 | this.contextMenuStrip1.Size = new global::System.Drawing.Size(162, 136); 94 | this.copyUsernameToolStripMenuItem.Name = "copyUsernameToolStripMenuItem"; 95 | this.copyUsernameToolStripMenuItem.Size = new global::System.Drawing.Size(161, 22); 96 | this.copyUsernameToolStripMenuItem.Text = "Copy Username"; 97 | this.copyUsernameToolStripMenuItem.Click += new global::System.EventHandler(this.copyUsernameToolStripMenuItem_Click); 98 | this.copyPasswordToolStripMenuItem.Name = "copyPasswordToolStripMenuItem"; 99 | this.copyPasswordToolStripMenuItem.Size = new global::System.Drawing.Size(161, 22); 100 | this.copyPasswordToolStripMenuItem.Text = "Copy Password"; 101 | this.copyPasswordToolStripMenuItem.Click += new global::System.EventHandler(this.copyPasswordToolStripMenuItem_Click); 102 | this.copySnkrsUrlToolStripMenuItem.Name = "copySnkrsUrlToolStripMenuItem"; 103 | this.copySnkrsUrlToolStripMenuItem.Size = new global::System.Drawing.Size(161, 22); 104 | this.copySnkrsUrlToolStripMenuItem.Text = "Copy Snkrs Url"; 105 | this.copySnkrsUrlToolStripMenuItem.Click += new global::System.EventHandler(this.copySnkrsUrlToolStripMenuItem_Click); 106 | this.openInBrowserToolStripMenuItem.Name = "openInBrowserToolStripMenuItem"; 107 | this.openInBrowserToolStripMenuItem.Size = new global::System.Drawing.Size(161, 22); 108 | this.openInBrowserToolStripMenuItem.Text = "Open in Browser"; 109 | this.openInBrowserToolStripMenuItem.Click += new global::System.EventHandler(this.openInBrowserToolStripMenuItem_Click); 110 | this.exportToJsonToolStripMenuItem.Name = "exportToJsonToolStripMenuItem"; 111 | this.exportToJsonToolStripMenuItem.Size = new global::System.Drawing.Size(161, 22); 112 | this.exportToJsonToolStripMenuItem.Text = "Export to Json"; 113 | this.exportToJsonToolStripMenuItem.Visible = false; 114 | this.exportToJsonToolStripMenuItem.Click += new global::System.EventHandler(this.exportToJsonToolStripMenuItem_Click); 115 | base.AutoScaleDimensions = new global::System.Drawing.SizeF(6f, 13f); 116 | base.AutoScaleMode = global::System.Windows.Forms.AutoScaleMode.Font; 117 | base.ClientSize = new global::System.Drawing.Size(587, 258); 118 | base.Controls.Add(this.objectListView1); 119 | base.FormBorderStyle = global::System.Windows.Forms.FormBorderStyle.SizableToolWindow; 120 | base.MaximizeBox = false; 121 | base.Name = "AddedProductsForm"; 122 | this.Text = "AddedProductsForm - Better Nike Bot"; 123 | base.FormClosing += new global::System.Windows.Forms.FormClosingEventHandler(this.AddedProductsForm_FormClosing); 124 | base.Load += new global::System.EventHandler(this.AddedProductsForm_Load); 125 | ((global::System.ComponentModel.ISupportInitialize)this.objectListView1).EndInit(); 126 | this.contextMenuStrip1.ResumeLayout(false); 127 | base.ResumeLayout(false); 128 | } 129 | 130 | // Token: 0x0400013A RID: 314 131 | private global::System.ComponentModel.IContainer components; 132 | 133 | // Token: 0x0400013B RID: 315 134 | private global::BrightIdeasSoftware.ObjectListView objectListView1; 135 | 136 | // Token: 0x0400013C RID: 316 137 | private global::BrightIdeasSoftware.OLVColumn olvColumn8; 138 | 139 | // Token: 0x0400013D RID: 317 140 | private global::BrightIdeasSoftware.OLVColumn olvColumn9; 141 | 142 | // Token: 0x0400013E RID: 318 143 | private global::BrightIdeasSoftware.OLVColumn olvColumn10; 144 | 145 | // Token: 0x0400013F RID: 319 146 | private global::BrightIdeasSoftware.OLVColumn olvColumn1; 147 | 148 | // Token: 0x04000140 RID: 320 149 | private global::BrightIdeasSoftware.OLVColumn olvColumn3; 150 | 151 | // Token: 0x04000141 RID: 321 152 | private global::BrightIdeasSoftware.OLVColumn olvColumn2; 153 | 154 | // Token: 0x04000142 RID: 322 155 | private global::System.Windows.Forms.ContextMenuStrip contextMenuStrip1; 156 | 157 | // Token: 0x04000143 RID: 323 158 | private global::System.Windows.Forms.ToolStripMenuItem copyUsernameToolStripMenuItem; 159 | 160 | // Token: 0x04000144 RID: 324 161 | private global::System.Windows.Forms.ToolStripMenuItem copyPasswordToolStripMenuItem; 162 | 163 | // Token: 0x04000145 RID: 325 164 | private global::System.Windows.Forms.ToolStripMenuItem copySnkrsUrlToolStripMenuItem; 165 | 166 | // Token: 0x04000146 RID: 326 167 | private global::System.Windows.Forms.ToolStripMenuItem openInBrowserToolStripMenuItem; 168 | 169 | // Token: 0x04000147 RID: 327 170 | private global::System.Windows.Forms.ToolStripMenuItem exportToJsonToolStripMenuItem; 171 | } 172 | } 173 | -------------------------------------------------------------------------------- /CheckoutProfile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.ComponentModel; 3 | using System.Drawing; 4 | using System.Linq; 5 | using System.Windows.Forms; 6 | using IMLokesh.Extensions; 7 | 8 | namespace Better_Nike_Bot 9 | { 10 | // Token: 0x02000008 RID: 8 11 | public partial class CheckoutProfile : Form 12 | { 13 | // Token: 0x06000033 RID: 51 RVA: 0x00004C8C File Offset: 0x00002E8C 14 | public CheckoutProfile(CreditCardProfile c = null) 15 | { 16 | this.InitializeComponent(); 17 | base.CenterToParent(); 18 | this.comboBoxBillingState.SelectedIndex = 0; 19 | this.comboBoxShippingState.SelectedIndex = 0; 20 | this.comboBoxBillingStateJP.SelectedIndex = 0; 21 | this.comboBoxShippingStateJP.SelectedIndex = 0; 22 | if (c.IsNull()) 23 | { 24 | return; 25 | } 26 | this.label26.Visible = true; 27 | this.textBoxProfileName.Text = c.Name; 28 | this.textBoxBillingFirstName.Text = c.BillingFirstName; 29 | this.textBoxBillingLastName.Text = c.BillingLastName; 30 | this.textBoxBillingAddress1.Text = c.BillingAddress1; 31 | this.textBoxBillingZipCode.Text = c.BillingZipCode; 32 | this.textBoxBillingCity.Text = c.BillingCity; 33 | this.textBoxBillingPhone.Text = c.BillingPhone; 34 | if (!c.BillingState.IsNullOrWhiteSpace()) 35 | { 36 | this.comboBoxBillingState.SelectedItem = this.comboBoxBillingState.Items.Cast().FirstOrDefault((string i) => i.EndsWith(c.BillingState)); 37 | } 38 | if (!c.ShippingState.IsNullOrWhiteSpace()) 39 | { 40 | this.comboBoxShippingState.SelectedItem = this.comboBoxShippingState.Items.Cast().FirstOrDefault((string i) => i.EndsWith(c.ShippingState)); 41 | } 42 | if (!c.BillingStateJP.IsNullOrWhiteSpace()) 43 | { 44 | this.comboBoxBillingStateJP.SelectedItem = this.comboBoxBillingStateJP.Items.Cast().FirstOrDefault((string i) => i.EndsWith(c.BillingStateJP)); 45 | } 46 | if (!c.ShippingStateJP.IsNullOrWhiteSpace()) 47 | { 48 | this.comboBoxShippingStateJP.SelectedItem = this.comboBoxShippingStateJP.Items.Cast().FirstOrDefault((string i) => i.EndsWith(c.ShippingStateJP)); 49 | } 50 | this.textBoxShippingFirst.Text = c.ShippingFirstName; 51 | this.textBoxShippingPhone.Text = c.ShippingPhone; 52 | this.textBoxShippingLast.Text = c.ShippingLastName; 53 | this.textBoxShippingAddress1.Text = c.ShippingAddress1; 54 | this.textBoxShippingCity.Text = c.ShippingCity; 55 | this.textBoxShippingPostalCode.Text = c.ShippingZipCode; 56 | this.comboBoxCardType.SelectedItem = c.CreditCardType; 57 | this.textBoxCardNumber.Text = c.CreditCardNumber; 58 | this.comboBoxExpirationMonth.SelectedItem = c.CreditCardExpiryMonth; 59 | this.comboBoxExpirationYear.SelectedItem = c.CreditCardExpiryYear; 60 | this.textBoxCvv.Text = c.CreditCardCvv; 61 | this.textBoxMaxCheckouts.Text = c.MaxCheckouts.ToString(); 62 | this.textBoxBillingAddress2.Text = c.BillingAddress2; 63 | this.textBoxShippingAddress2.Text = c.ShippingAddress2; 64 | this.textBoxBillingAddress3.Text = c.BillingAddress3; 65 | this.textBoxShippingAddress3.Text = c.ShippingAddress3; 66 | } 67 | 68 | // Token: 0x06000034 RID: 52 RVA: 0x0000503C File Offset: 0x0000323C 69 | private void buttonSave_Click(object sender, EventArgs e) 70 | { 71 | if (this.checkBoxShippingSame.Checked) 72 | { 73 | this.comboBoxShippingState.SelectedItem = this.comboBoxBillingState.SelectedItem; 74 | this.comboBoxShippingStateJP.SelectedItem = this.comboBoxBillingStateJP.SelectedItem; 75 | this.textBoxShippingAddress1.Text = this.textBoxBillingAddress1.Text; 76 | this.textBoxShippingAddress2.Text = this.textBoxBillingAddress2.Text; 77 | this.textBoxShippingAddress3.Text = this.textBoxBillingAddress3.Text; 78 | this.textBoxShippingCity.Text = this.textBoxBillingCity.Text; 79 | this.textBoxShippingFirst.Text = this.textBoxBillingFirstName.Text; 80 | this.textBoxShippingLast.Text = this.textBoxBillingLastName.Text; 81 | this.textBoxShippingPhone.Text = this.textBoxBillingPhone.Text; 82 | this.textBoxShippingPostalCode.Text = this.textBoxBillingZipCode.Text; 83 | } 84 | try 85 | { 86 | string[] source = new string[] 87 | { 88 | this.textBoxProfileName.Text, 89 | this.textBoxBillingFirstName.Text, 90 | this.textBoxBillingLastName.Text, 91 | this.textBoxBillingAddress1.Text, 92 | this.textBoxBillingZipCode.Text, 93 | this.textBoxBillingCity.Text, 94 | this.textBoxBillingPhone.Text, 95 | this.textBoxShippingFirst.Text, 96 | this.textBoxShippingPhone.Text, 97 | this.textBoxShippingLast.Text, 98 | this.textBoxShippingAddress1.Text, 99 | this.textBoxShippingCity.Text, 100 | this.textBoxShippingPostalCode.Text, 101 | this.comboBoxCardType.SelectedItem.IsNull() ? "" : this.comboBoxCardType.SelectedItem.ToString(), 102 | this.textBoxCardNumber.Text, 103 | this.comboBoxExpirationMonth.SelectedItem.IsNull() ? "" : this.comboBoxExpirationMonth.SelectedItem.ToString(), 104 | this.comboBoxExpirationYear.SelectedItem.IsNull() ? "" : this.comboBoxExpirationYear.SelectedItem.ToString(), 105 | this.textBoxCvv.Text, 106 | this.textBoxMaxCheckouts.Text 107 | }; 108 | if (source.Any((string s) => s.IsNullOrWhiteSpace())) 109 | { 110 | throw new Exception("A required value is missing. Make sure you fill all details."); 111 | } 112 | if (new string[] 113 | { 114 | this.textBoxShippingPhone.Text, 115 | this.textBoxBillingPhone.Text 116 | }.Any((string s) => !s.RegexIsMatch("^[0-9]{10,}$"))) 117 | { 118 | throw new Exception("Please enter a valid 10 digit phone number."); 119 | } 120 | if (new string[] 121 | { 122 | this.textBoxCardNumber.Text, 123 | this.textBoxCvv.Text 124 | }.Any((string s) => !s.RegexIsMatch("^[0-9]+$"))) 125 | { 126 | throw new Exception("Please enter valid card details. Remove any blank spaces."); 127 | } 128 | if (this.comboBoxBillingStateJP.SelectedIndex != 0 && this.textBoxBillingAddress3.Text.IsNullOrWhiteSpace()) 129 | { 130 | "Please also enter 町域 (Town Area) for running for Japan.".Show(MessageBoxIcon.Asterisk, "", MessageBoxButtons.OK); 131 | } 132 | CreditCardProfile creditCardProfile = new CreditCardProfile 133 | { 134 | Name = this.textBoxProfileName.Text, 135 | BillingFirstName = this.textBoxBillingFirstName.Text, 136 | BillingLastName = this.textBoxBillingLastName.Text, 137 | BillingAddress1 = this.textBoxBillingAddress1.Text, 138 | BillingAddress2 = this.textBoxBillingAddress2.Text, 139 | BillingAddress3 = this.textBoxBillingAddress3.Text, 140 | BillingZipCode = this.textBoxBillingZipCode.Text, 141 | BillingCity = this.textBoxBillingCity.Text, 142 | BillingPhone = this.textBoxBillingPhone.Text, 143 | BillingState = ((this.comboBoxBillingState.SelectedIndex == 0) ? "" : this.comboBoxBillingState.SelectedItem.ToString().Split(new string[] 144 | { 145 | " - " 146 | }, StringSplitOptions.None).Last()), 147 | ShippingState = ((this.comboBoxShippingState.SelectedIndex == 0) ? "" : this.comboBoxShippingState.SelectedItem.ToString().Split(new string[] 148 | { 149 | " - " 150 | }, StringSplitOptions.None).Last()), 151 | BillingStateJP = ((this.comboBoxBillingStateJP.SelectedIndex == 0) ? "" : this.comboBoxBillingStateJP.SelectedItem.ToString().Split(new string[] 152 | { 153 | " - " 154 | }, StringSplitOptions.None).Last()), 155 | ShippingStateJP = ((this.comboBoxShippingStateJP.SelectedIndex == 0) ? "" : this.comboBoxShippingStateJP.SelectedItem.ToString().Split(new string[] 156 | { 157 | " - " 158 | }, StringSplitOptions.None).Last()), 159 | ShippingFirstName = this.textBoxShippingFirst.Text, 160 | ShippingPhone = this.textBoxShippingPhone.Text, 161 | ShippingLastName = this.textBoxShippingLast.Text, 162 | ShippingAddress1 = this.textBoxShippingAddress1.Text, 163 | ShippingAddress2 = this.textBoxShippingAddress2.Text, 164 | ShippingAddress3 = this.textBoxShippingAddress3.Text, 165 | ShippingCity = this.textBoxShippingCity.Text, 166 | ShippingZipCode = this.textBoxShippingPostalCode.Text, 167 | CreditCardType = this.comboBoxCardType.SelectedItem.ToString(), 168 | CreditCardNumber = this.textBoxCardNumber.Text, 169 | CreditCardExpiryMonth = this.comboBoxExpirationMonth.SelectedItem.ToString(), 170 | CreditCardExpiryYear = this.comboBoxExpirationYear.SelectedItem.ToString(), 171 | CreditCardCvv = this.textBoxCvv.Text, 172 | MaxCheckouts = this.textBoxMaxCheckouts.Text.ParseToInt() 173 | }; 174 | if (Form1.CreditCardProfiles.Any((CreditCardProfile c) => c.Name == this.textBoxProfileName.Text)) 175 | { 176 | int index = Form1.CreditCardProfiles.IndexOf(Form1.CreditCardProfiles.First((CreditCardProfile c) => c.Name == this.textBoxProfileName.Text)); 177 | Form1.CreditCardProfiles[index] = creditCardProfile; 178 | } 179 | else 180 | { 181 | Form1.CreditCardProfiles.Add(creditCardProfile); 182 | } 183 | Form1.DefaultForm.SaveSettings(); 184 | base.DialogResult = DialogResult.OK; 185 | } 186 | catch (Exception ex) 187 | { 188 | ex.Message.Show(MessageBoxIcon.Hand, "", MessageBoxButtons.OK); 189 | } 190 | } 191 | } 192 | } 193 | --------------------------------------------------------------------------------