# SNKRS ALARM - Google Forms Raffle Bot Guide
## Introduction
SNKRS ALARM delivers exclusive software to its members. This guide serves as a reference/manual on how to use one of our gratest tools; the Google Forms Raffle Bot.
## Installation
Downloads for Windows, MacOS & Linux should be publically available on the discord server. Once you've downloaded the installer for your operating system, run it and wait for the installation to complete. The software should start by itself & create a desktop shortcut.
## Authentication
When you open the software for the first time, you will be greated by an authentication screen. Here you have to login with discord in order to proceed. We require this in order to verify that you're legitimately part of the SNKRS ALARM discord server.
## Usage
Let's go though all features, starting from the top right tab to the left.
### Proxies
Here you can add proxies that can be used to hide your real location when submitting the google form.
Notice that you need to create at least one **proxy group** first. A group is just a bundle of proxies that makes it easier for you to manage lots of proxies in bulk. For example, you could have a proxy group per country :`US` and `JP`. Then, at the form tab (more about that below) you can select the group that you want to use for a submission. The bot will try to use all proxies for the selected group during a submission.

At the time of writing only HTTP proxies are supported.
### Accounts
This is where you store your Google accounts. When a Google form response is limited to 1 response and thus requires sign in, all of the accounts you entered here will be used by the bot.

### Form
Let's hop forward to the Form tab. This is the main section where you can start submitting a form.
#### Configuration parameters
The bot requires some information before it can start.
##### `Form URL`
This is a direct link to a google form. It can be either a full URL or a shortlink.
Example values:
- https://forms.gle/keaHGB8K34roo33r9
- https://docs.google.com/forms/d/e/1FAIpQLSfmFeeO9_a7B1bNrYn5yMbp01BggEJAOe0L3qIHpOCTBuDppA/viewform?usp=sf_link
##### `Proxies`
Select your **proxy group** (see above). If you leave this blank, no proxy will be used!
##### `Chrome executable path`
A full path to a Chrome or Chromium executable that's installed on your system. The bot requires this to log in to your Google account. If you don't have have Chrome installed yet, we recommend downloading [Chromium](https://www.chromium.org/getting-involved/download-chromium) because it's free, open source and smaller.
Assuming you've entered all parameters correctly, hit `Load form` to load the google form. Don't worry, this action won't submit anything to Google yet.

Now you can start entering data into the form, just like you would on a regular Google form in the browser.
When ready to to submit the form, press `Done & start` at the bottom. You can also press the `Done` and `Start` buttons separately. Same principle, the latter only being slightly faster if you wanna grab a coffee first.

### Matchers
At the 3rd tab you can create custom input field matchers.
Let's say the Google form contains an email field. In that case the bot should submit a different value per submission, right? That's what this section is made for!
#### Creating a matcher
Creating a matcher is easy, trust me. Only a few parameters are required.
##### `name` (optional)
Add an optional name for your matcher. This way it will be easier to recognize when you load the form.

##### `match`
Matcher type. For example select `Title` if the bot should try to match the title, `Description` if it should look in the description, etc.
Notice that you can also select `Entry ID` as an option. Each Google form input internally has an Entry ID, which under normal circumstances isn't visible to a regular user. We've included in our bot so you can set the value of any input field directly. Just copy and paste the Entry ID into the `pattern` field and you should be good to go!

#### `pattern`
This is a regular expression ([what?](https://en.wikipedia.org/wiki/Regular_expression) - [editor](https://regex101.com/)) that the bot will try to match with whatever you entered in `match`. If it matches, `values` will be entered. If not, it will be a normal field.
E.g email pattern: `e-{0,1}mail` would match both `email` and `e-mail`.
#### `values`
A list of values that the bot should enter randomly. If your field requires multiple values per submission (e.g. checkboxes), enter multiple values on the same line separated by a comma.
Example input:
```
cake,pizza
chocolate,icecream
```
## FAQ
### What's currently not working?
- images (bot will dump all info about it, but won't show the image)
- file upload
- go to section based on answer (not really required, but nice to have)
### So what do you need that Chrome/Chromium browser for?
Google login isn't easy to bot using plain HTTP requests. It is possible, but just way out of scope for this project. When additional steps are required (like phone verification) the bot will wait for you to complete it manually in the browser before it continues.
----
*Copyright © 2020 - developed by [Sleeyax](https://twitter.com/sleeyax) on behalf of [SNRKS ALARM](https://twitter.com/SNKRSALARM_)*