ReplAPI.it A Simple and Complete Replit API Package

Overview

Notice: Currently this project is just a framework. It does not work yet.
If you want to get updated when 1.0.0 is released, then click Watch -> Custom -> Releases -> Apply

Contributors Forks Stargazers Issues License Downloads on PyPI Ballad Test


Logo

ReplAPI.it

A Simple and Complete Replit API Package
Explore the docs »

View Package on PyPI · Report Bug · Request Feature

Table of Contents

  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgements

About The Project

The Replit GraphQL API is an extraordinary way to make projects unique and special, yet with the numerous packages available few such projects have been made. Why would that be? Most likely due to how complicated writing code can get and the limitations of their queries. My package, ReplAPI.it, changes that with a simple to use structure and many queries, some of which are:

  • Queries for Data on Users (such as Profile, Posts, Comments)
  • Queries for Data on Posts (such as Upvoters, Content)
  • Queries for Data on Repls (such as Files, Comments)
  • Mutations for Commenting, Reporting, and Posting
  • Queries for Data on Leaderboard (with filters such as cycles since)
  • and lots more!

This package is also simple to use with it's class-based structure. Simply create a new class for your User, Post, or whatever your heart desires and use built in functions with options to query data your way.

Built With

Contributing

Contributions are much appreciated, and if you have a cool idea that feels right in this package then you should check out our contributing page.

License

Distributed under the GPL-3.0 License. See LICENSE for more information.

Contact

Project Link: https://github.com/ReplAPI-it/ReplAPI.it-Python

Acknowledgements

Comments
  • Made cycles!

    Made cycles!

    Hi! I don't know if this is what you guys(and by that I mean @BD103, @RayhanADev, and @JBYT27, super sorry for ping! Just needed to make sure people knew what I meant). I made the cycles grabber, and it works if you put in the right username.

    I don't know the name for the function, so I just made it getCycles, so one of you guys can change it.

    And if you wanna make the error, go ahead, I just think print is tidier and it exits the program without a bunch of other stuff.

    Thanks! I'll make more features!

    Priority: LOW Type: IMPROVEMENT 
    opened by darkdarcool 21
  • [BUG] ~ staging.replit.com/graphql doesn't support requests

    [BUG] ~ staging.replit.com/graphql doesn't support requests

    Describe the bug Making a standard request on staging.replit.com just returns the URL https://replit.slack.com/archives/C3AA56MFS/p1622838662154800.

    To Reproduce Steps to reproduce the behavior:

    1. Go to '...'
    2. Click on '....'
    3. Scroll down to '....'
    4. See error

    Expected behavior Running CLASS.collect() returns a dictionary of the data, while running CLASS.collect_raw() returns JSON.

    Screenshots Screenshot 2021-06-08 08 38 45

    Desktop (please complete the following information):

    • OS: ChromeOS
    • Browser: Chrome
    • Version: Not sure

    Additional context This also breaks CLASS.collect(), because it cannot convert text to a dictionary.

    Priority: HIGH Status: COMPLETED Type: BUG 
    opened by BD103 16
  • [For Developers] Commit Guidelines

    [For Developers] Commit Guidelines

    Hello, everyone! We have some new people on the repo, specifically @darkdarcool and @JBYT27. Because of this, I would like to highlight the standards for committing to the repo. Let's get started:

    Committing Format

    All commits should follow Conventional Commits, a guideline followed by the entire project. What does this mean? All commits should be formatted like the following:

    <type>[optional scope]: <description>
    
    [optional body / long description]
    
    [optional footer(s)]
    

    Most of the time, Replit only supports a short description. Because of this, you would probably only insert line 1 of that sample. If you are making a commit on Github, then the long description is supported.

    What are types?

    The types represent what the commit is doing. For instance:

    • fix: A commit that patches a bug, but does not add any new features
    • feat: A commit that introduces a new type of feature to the code. This does not change anything, only adds on.
    • BREAKING CHANGE: (or you could also add an ! after the type / scope) introduces a change to the API. This means that it breaks pre-existing code.
    • chore: A commit that updates something in the repo that does not directly correlate to the code. (For instance updating README.md, changing Github Actions, etc.)
    • docs: A commit that updates the docs. Not much else here.

    There may be more types but ask RayhanADev.

    Scopes?

    Scopes represent a specific section to the type. They don't have to be anything specific and don't have to have been used before. They just help a reviewer easily tell where the change occurred in case the description is obscure. Some used scopes have been:

    • workflow
    • contribution (CONTRIBUTING.md)
    • repo (general changes)
    • readme (for README.md file)

    What about Pull Requests?

    That's a very good question. I myself am unsure what to do for PRs, but I assume that they follow the same format. Combine all the commits, and find the most important. (Breaking is more important than feat, and fix is more important than docs.)

    Semantic Version

    A common practice is to make this package follow SemVer or Semantic Versioning. Read over the specs here. They go in direct correlation with Conventional Commits. You guys will not probably have to worry about this, as I will be the one who packages and releases the versions. It's just nice to know.

    Closing

    I'm sorry for the word wall. After noticing the commit history was a mess I knew I had to do something, though. Please raise any questions in the comments, and remember to also read over CONTRIBUTING.md. Thanks!

    ~ BD103 :D

    Update

    Make the short description lowercase. I forgot to mention that!

    Type: DOCUMENTATION 
    opened by BD103 16
  • Ballad Lint and Test Action (WIP)

    Ballad Lint and Test Action (WIP)

    Finally adding Continuous Integration! I have designed a Python Package that simulates installing from a poetry.lock file. It's called Ballad. Here's what I did:

    • Created standard Github Action
    • Added linter with Black, Isort, and Flake8
    • It actually works!
    • Only runs for the master branch (which can be changed)
    • Because it's my project, I can add features that are requested
    Priority: LOW Status: COMPLETED Type: IMPROVEMENT 
    opened by BD103 16
  • [REQUEST] ~ Github Actions CI

    [REQUEST] ~ Github Actions CI

    Add continuous integration with Github Actions. Currently, this is a low priority because of the following:

    • This project uses Poetry for dependency management
    • Github Actions does not initially support Poetry
    • Installing Poetry works, but commands are not registered
      • For instance, even though it installed Isort, the isort command isn't available
      • This makes it very difficult to use all the dependencies necessary for the project
    Priority: LOW Status: COMPLETED Type: IMPROVEMENT 
    opened by BD103 15
  • Interesting!

    Interesting!

    Hey! I was just wondering @BD103, since I know python ~~and have no ideas~~, can I join this proj?

    If no, that's fine, I'll just leave a couple pull requests here and there

    Thanks!

    opened by darkdarcool 13
  • Repository Meta

    Repository Meta

    New contributors typically look to a CONTRIBUTING.md and CODE_OF_CONDUCT.md for how to contribute to a repository. Also be sure to specify a Commit Convention (or lack of one) so that commit history is clean. Lastly, if Python has a code linter and/or formatter you should include the setup for these and configuration files so that all your code remains clean and consistent.

    Speaking from experience I ran a repository for 3 months without the above and trying to make changes or consistency was a pain. Adopting these best practices will help you run this module smoothly!

    Priority: MEDIUM Status: COMPLETED Type: DOCUMENTATION 
    opened by rayhanadev 8
  • [REQUEST] ~ Documentation needed

    [REQUEST] ~ Documentation needed

    This looks like a cool project, but you seem to be lacking a documentation? I would recomend having it in the README file, and you should make sure it also goes on Pypi to.

    Type: REQUEST 
    opened by Isaiah08-D 4
  • [BUG] ~ Github to Replit sync

    [BUG] ~ Github to Replit sync

    Github to Replit sync broken I checked out our team repl for the python module, and tried both pulling and pushing. However, as this does happen, the sync has broke. I already left a message inside the repl, but I'm leaving an issue as well. You might want to import this GitHub repo in Replit.

    Just letting you know

    To Reproduce Steps to reproduce the behavior:

    1. Go to 'Version Control'
    2. Click on 'Pull'
    3. Click on 'Push' this time
    4. See error

    Expected behavior It's supposed to pull for you and push for you as it's synced, but it doesn't. It reacts like a null (lol).

    Screenshots Check the repl for more.

    Desktop (please complete the following information):

    • OS: ChromeOS
    • Browser: Chrome
    • Version: 91.0.4472.81 (i think)
    Priority: HIGH Status: COMPLETED 
    opened by kokonut27 4
  • Setup a Project Board

    Setup a Project Board

    You may want to setup a Kanban board in Projects to track issues and deadlines for your first release of the module. It might help keep things organized when transpiling the NodeJS package to a Python Module.

    Priority: LOW Status: COMPLETED Type: DOCUMENTATION 
    opened by rayhanadev 4
  • Upgrade to an HTTPS package

    Upgrade to an HTTPS package

    Previously when fetching the staging domain you could use HTTP requests (i.e. what the requests package uses) however when fetching the standard domain that is no longer the case. You need to use an HTTPS package. I would experiment with urllib, although I'm not sure if it supports https. Worst case scenario if nothing works you can use the native Python HTTPS APIs, make your own package (you only need GET and POST requests) and use that (it's what I did for the NodeJS package).

    opened by rayhanadev 3
Releases(v0.0.1)
Owner
The ReplAPI.it Project
Making Public API's and Packages for the Replit Community!
The ReplAPI.it Project
This is a graphql api build using ariadne python that serves a graphql-endpoint at port 3002 to perform language translation and identification using deep learning in python pytorch.

Language Translation and Identification this machine/deep learning api that will be served as a graphql-api using ariadne, to perform the following ta

crispengari 2 Dec 30, 2021
A plug and play GraphQL API for Wagtail, powered by Strawberry 🍓

Strawberry Wagtail ?? A plug and play GraphQL API for Wagtail, powered by Strawberry ?? ⚠️ Strawberry wagtail is currently experimental, please report

Patrick Arminio 27 Nov 27, 2022
A python graphql api, which serves ECB currency rates from last 90 days.

Exchange Rate Api using GraphQL Get Code git pull https://github.com/alaturqua/exchangerate-graphql.git Create .env file with following content and s

Isa 1 Nov 4, 2021
This is a simple Python that will parse instanceStats GraphQL Query into a CSV

GraphQL Python Labs - by Gabs the CSE Table of Contents About The Project Getting Started Prerequisites Installation and Usage Roadmap Contributing Li

Gabriel (Gabs) Cerioni 1 Oct 27, 2021
GraphQL is a query language and execution engine tied to any backend service.

GraphQL The GraphQL specification is edited in the markdown files found in /spec the latest release of which is published at https://graphql.github.io

GraphQL 14k Jan 1, 2023
Django registration and authentication with GraphQL.

Django GraphQL Auth Django registration and authentication with GraphQL. Demo About Abstract all the basic logic of handling user accounts out of your

pedrobern 301 Dec 9, 2022
Modular, cohesive, transparent and fast web server template

kingdom-python-server ?? Modular, transparent, batteries (half) included, lightning fast web server. Features a functional, isolated business layer wi

T10 20 Feb 8, 2022
Lightning fast and portable programming language!

Photon Documentation in English Lightning fast and portable programming language! What is Photon? Photon is a programming language aimed at filling th

William 58 Dec 27, 2022
GraphQL security auditing script with a focus on performing batch GraphQL queries and mutations

BatchQL BatchQL is a GraphQL security auditing script with a focus on performing batch GraphQL queries and mutations. This script is not complex, and

Assetnote 267 Dec 24, 2022
Generate a FullStack Playground using GraphQL and FastAPI 🚀

FastQL - FastAPI GraphQL Playground Generate a FullStack playground using FastAPI and GraphQL and Ariadne ?? . This Repository is based on this Articl

OBytes 109 Dec 23, 2022
This is a minimal project using graphene with django and user authentication to expose a graphql endpoint.

Welcome This is a minimal project using graphene with django and user authentication to expose a graphql endpoint. Definitely checkout how I have mana

yosef salmalian 1 Nov 18, 2021
🔪 Facebook Messenger to email bridge based on reverse engineered auth and GraphQL APIs.

Unzuckify This repository has a small Python application which allows me to receive an email notification when somebody sends me a Facebook message. W

Radon Rosborough 33 Dec 18, 2022
A Django GraphQL Starter that uses graphene and graphene_django to interface GraphQL.

Django GraphQL Starter GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data... According to the doc

0101 Solutions 1 Jan 10, 2022
MGE-GraphQL is a Python library for building GraphQL mutations fast and easily

MGE-GraphQL Introduction MGE-GraphQL is a Python library for building GraphQL mutations fast and easily. Data Validations: A similar data validation w

MGE Software 4 Apr 23, 2022
Blazing fast GraphQL endpoints finder using subdomain enumeration, scripts analysis and bruteforce.

Graphinder Graphinder is a tool that extracts all GraphQL endpoints from a given domain. Run with docker docker run -it -v $(pwd):/usr/bin/graphinder

Escape 76 Dec 28, 2022
Replit theme sync; Github theme sync but in Replit.

This is a Replit theme sync, basically meaning that it keeps track of the current time (which may need to be edited later on), and if the time passes morning, afternoon, etc, the theme switches. The idea came from GitHub's theme sync. Except this is a separate program, not attached to Replit.

Glitch 8 Jun 25, 2022
Python package that mirrors the original Nodejs ReplAPI-It.

Python-ReplAPI-It Python package that mirrors the original Nodejs ReplAPI-It. Contributing First fork the repo: $ git clone https://github.com/ReplAPI

The ReplAPI.it Project 10 Jun 5, 2022
A bot which provides online/offline and player status for Thicc SMP, using Replit.

AlynaaStatus A bot which provides online/offline and player status for Thicc SMP. Currently being hosted on Replit. How to use? Create a repl on Repli

QuanTrieuPCYT 8 Dec 15, 2022
MyReplitDB - the most simplistic and easiest wrapper to use for replit's database system.

MyReplitDB is the most simplistic and easiest wrapper to use for replit's database system. Installing You can install it from the PyPI Or y

kayle 4 Jul 3, 2022
A Replit Game Know As ROCK PAPER SCISSOR AND ALSO KNOW AS STONE PAPER SCISSOR

?? ᴿᴼᶜᴷ ᴾᴬᴾᴱᴿ ᔆᶜᴵᔆᔆᴼᴿ ?? ⚙️ Rᴜɴ Oɴ Rᴇᴘʟɪᴛ ??️ Lᴀɴɢᴜᴀɢᴇs Aɴᴅ Tᴏᴏʟs If you are taking code from this repository without a fork, then atleast give credit

ANKIT KUMAR 1 Dec 25, 2021