Script to draw an image onto r/place (https://www.reddit.com/r/place/)
This is a script to draw an image onto r/place (https://www.reddit.com/r/place/).
If you want to use tor on macOS. you'll need to provide your own tor binary or install it via Homebrew using brew install tor
, and start it manually.
Make sure to deactivate the "use_builtin tor" option in the config and configure your tor to use the correct ports and password.
Please note that socks proxy connection to tor doesn't work for the time being, so the config value is for an httpTunnel port
Move the file 'config_example.json' to 'config.json'
Edit the values to replace with actual credentials and values
Note: Please use https://jsonlint.com/ to check that your JSON file is correctly formatted
{
//Where the image's path is
"image_path": "image.png",
// [x,y] where you want the top left pixel of the local image to be drawn on canvas
"image_start_coords": [741, 610],
// delay between starting threads (can be 0)
"thread_delay": 2,
// array of accounts to use
"workers": {
// username of account 1
"worker1username": {
// password of account 1
"password": "password",
// which pixel of the image to draw first
"start_coords": [0, 0]
},
// username of account 2
"worker1username": {
// password of account 2
"password": "password",
// which pixel of the image to draw first
"start_coords": [0, 0]
}
// etc... add as many accounts as you want (but reddit may detect you the more you add)
}
}
.png
if you wish to make use of transparency or non rectangular imagespassword
to password:XXXXXX
where XXXXXX
is your 2FA code.start.bat or startverbose.bat
chmod +x start.sh startverbose.sh
./start.sh or ./startverbose.sh
You can get more logs (DEBUG
) by running the script with -d
flag:
python3 main.py -d
or python3 main.py --debug
Just create multiple child arrays to "workers" in the .json file:
{
"image_path": "image.png",
"image_start_coords": [741, 610],
"thread_delay": 2,
"workers": {
"worker1username": {
"password": "password",
"start_coords": [0, 0]
},
"worker2username": {
"password": "password",
"start_coords": [0, 50]
}
}
}
In this case, the first worker will start drawing from (0, 0) and the second worker will start drawing from (0, 50) from the input image.jpg file.
This is useful if you want different threads drawing different parts of the image with different accounts.
If any JSON decoders errors are found, the config.json
needs to be fixed. Make sure to add the below 2 lines in the file.
{
"thread_delay": 2,
"unverified_place_frequency": false,
"proxies": ["1.1.1.1:8080", "2.2.2.2:1234"],
"compact_logging": true
}
--verbose
to "python main.py". This will output a lot more information, and not neccessarily in the right order, but it is useful for development and debugging.Tor can be used as an alternative to normal proxies. Note that currently, you cannot use normal proxies and tor at the same time.
"using_tor": false,
"tor_ip": "127.0.0.1",
"tor_port": 1881,
"tor_control_port": 9051,
"tor_password": "Passwort",
"tor_delay": 5,
"use_builtin_tor": true
The config values are as follows:
Note that when using the included binaries, only the tunnel port is explicitly set while starting tor.
brew install tor
.torrc
. Copy this into it.ControlPort
in your torrc file and uncomment it. Change the port number to your desired control port.tor --hash-password PASSWORD
from a terminal in the folder with your tor executable, with "PASSWORD" being your desired password. Copy the resulting hash.HashedControlPassword
and uncomment it. Paste the hash value you copied after it.config.json
and enable tor with using_tor = true
.tor --defaults-torrc PATHTOTORRC --HttpTunnelPort TUNNELPORT
, with PATHTOTORRC being your path to the torrc file you created and TUNNELPORT being your httptunnel port.License for the included tor binary:
Tor is distributed under the "3-clause BSD" license, a commonly used software license that means Tor is both free software and open source: Copyright (c) 2001-2004, Roger Dingledine Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson Copyright (c) 2007-2019, The Tor Project, Inc. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the names of the copyright owners nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
A dockerfile is provided. Instructions on installing docker are outside the scope of this guide.
To build: After editing the config.json
file, run docker build . -t place-bot
. and wait for the image to build.
You can now run it with docker run place-bot
See the Contributing Guide.