Skip to content

Releases: vxsl/partmin

v0.2.0

18 Mar 21:19

Choose a tag to compare

@partmin - automating the tedium of your apartment hunt.

This project is a self-hosted Discord bot that aggregates property rental listings from multiple platforms, sending interactive notifications about new listings that match your criteria.

Listings are retrieved from the following platforms:

demo

Features include:

  • search with precision by defining multiple search radii:

  • commute time estimates are provided for each listing via Google Maps Distance Matrix API:

  • granular filtering options:

    • number of bedrooms, size, parking, roommates, pet-friendliness, etc.
    • omit basements, sublets, or swaps
    • blacklist specific phrases (regular expressions supported!)
  • tweak your search on-the-fly with slash commands

  • check on the bot's activity by viewing its status:


Important Notes

  • Currently, only 🇨🇦 cities are supported.

  • This project is still in development; be warned that it is not yet 100% stable and may contain bugs.

  • A Google Maps API key with permissions for the Geocoding and Distance Matrix APIs is required.

    • Please note that the free tier of the Google Maps API has usage limits, but if you're using partmin for personal use, you're unlikely to exceed these limits.
    • You can obtain your API key from the Google Cloud Console.

Getting Started

  1. Clone this repository:
git clone https://github.com/vxsl/partmin
  1. Create a file called .env in the root directory of the project:
cd partmin && touch .env
  1. Retrieve your Discord server's ID by opening Discord, right-clicking your server in the sidebar, and navigating to Server Settings > Widget > SERVER ID. Place the ID in your .env file:
DISCORD_SERVER_ID=your-server-id

Note that partmin will create channels in this server, so make sure you have the necessary permissions to do so.

  1. Create a bot in the Discord Developer Portal.

  2. Retrieve the bot token from the Bot section of your application's control panel in the developer portal, and place the token in your .env file:

DISCORD_TOKEN=your-bot-token
  1. Retrieve the application ID from the General Information section of your application's control panel in the developer portal, and place the ID in your .env file:
DISCORD_APP_ID=your-application-id
  1. Start partmin. The easiest way is to use Docker Compose:
docker compose up --build

You can also run partmin without Docker, but there will be additional setup required. (please refer to the Dockerfile for the necessary dependencies):

yarn install
yarn bot
  1. 🚀 Your self-hosted bot is now online! Follow the instructions provided by the bot to configure your search.

setup


Discord Commands

  • /location: 📌 What city do you want to live in?
  • /search-areas: 📌 Specify granular search radii within your city.
  • /commute-destinations: 📌 Define commute destinations.
  • /search-parameters: 📄 View and edit your search parameters.
  • /advanced-config: 📄 View and edit advanced config. Avoid this unless you know what you're doing.

Contributing

Contributions are welcome! If you have any ideas for new features or improvements, please open an issue or submit a pull request.

License

This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License.

v0.1.0

18 Mar 13:51

Choose a tag to compare

This early version of the program does not include comprehensive interactive editing.

It tries to guide the user through initial setup, but note that the user will have to copy config/config.example.json into config/config.json, and edit the values to their liking. In particular they will have to set search.location.mapDevelopersURL with a value from the Map Developers circle-drawing tool.

Options under search.params are editable on-the-fly interactively via the slash command /edit-search.