coderHub
A python method based on the API of the coderHub.sa, which helps you to fetch the challenges and more
Installation • Features • Usage • License
This project is a personal effort and CoderHub has nothing to do with the content of this project.
Installation
Use pypi to install coderHub.
pip3 install coderHub
Features
- get all challenges or by difficulty
- search for challenges
- get challenge by id
- get all languages info or by language name
- get top 10 leaderboard by programming language
- get user profile info
- get user statistics info
Usage
get all challenges or by difficulty:
from coderHub import CoderHub
coder_hub = CoderHub()
# get all challenges
print(coder_hub.get_challenges())
#get by difficulty
print(coder_hub.get_challenges(difficulty="سهل"))
Example Result
{"count": 99, "result": [{...}, {...}, {...}, {...}, {...}, {...}, {...}, {...}, {...}, ...]}
search for challenges:
from coderHub import CoderHub
coder_hub = CoderHub()
print(coder_hub.search_challenges(word="تاريخ"))
Example Result
{
"count": 2,
"result":
[
{
"challenge_tags": [{"name": "Date"}, {"name": "String"}],
"created_by": {"username": "CoderHub"},
"id": "c93a5e09-2578-42ec-95db-88d1e87d6459",
"points": 10,
"title": "تاريخ اليوم",
"type_of_level": {"name": "متوسط"}
},
{
"challenge_tags": [{"name": "Date"}, {"name": "String"}],
"created_by": {"username": "CoderHub"},
"id": "a2df08ef-faa1-4aaf-bbd5-66f7e021855a",
"points": 10,
"title": "تعديل صيغة التاريخ",
"type_of_level": {"name": "متوسط"}
}
]
}
get challenge by id:
from coderHub import CoderHub
coder_hub = CoderHub()
print(coder_hub.get_challenge_by_id(challenge_id="3e420f85-f4e9-4e7a-b6bc-f35a8db70cb4"))
Example Result
{
"id": "3e420f85-f4e9-4e7a-b6bc-f35a8db70cb4",
"title": "طرح عددين",
"description": "### وصف التحدي\r\nقم بكتابة `function` تستقبل عددين، العدد الأول يمثل رقماً صحيحاً `integer` والعدد الثاني يمثل أيضا رقماً صحيحاً `integer`, ثم قم بإرجاع حاصل **طرح** هذين العددين.\r\n\r\n### المخرجات المتوقعة\r\n| Output | b | a |\r\n|----|----|----|\r\n| 5 | 5 | 10 |\r\n| 6 | -3 | 3 |\r\n| -5 | 1 | -4 |\r\n| 1 | -1 | 0 |\r\n| 0 | 0 | 0 |\r\n| -92 | -4 | -96 |",
"points": 5
// and more ...
}
get languages:
from coderHub import CoderHub
coder_hub = CoderHub()
# all languages
print(coder_hub.get_languages())
# language by name
print(coder_hub.get_languages(language="python"))
Example Result
// all languages
{
"result": [
{"id": 6, "name": "swift", "version": "swift 4.2.2"},
{"id": 3, "name": "python", "version": "python 3.5.3"},
{"id": 2, "name": "javascript", "version": "SMonkey 68.6.0"},
{"id": 1, "name": "java", "version": "jdk 8u51"},
{"id": 8, "name": "c#", "version": "Mono 4.0.2"}
]
}
// language by name
{"id": 3, "name": "python", "version": "python 3.5.3"}
get leaderboard:
from coderHub import CoderHub
coder_hub = CoderHub()
print(coder_hub.get_leaderBoard(language="Python", search_type="ALL"))
Example Result
{
"leaderboard": [
{
"points": 835.0,
"user_id": "b45cf6da-c2aa-4347-a3da-fbf951a4183b",
"rank": 1,
"user_info": {"username": "hamoud47", "public": true}
},
{
"points": 830.0,
"user_id": "5eb4d6ea-1f0e-4cb9-b365-44518ddf5667",
"rank": 2,
"user_info": {"username": "awiteb", "public": false}
}
// 8 more
]
}
get user profile:
from coderHub import CoderHub
coder_hub = CoderHub()
print(coder_hub.get_profile(username="x7md"))
Example Result
{
"preferred_language": "JavaScript",
"user_information": {
"id": "eab8c73c-9ae2-4595-a321-3de9faa72721",
"public_profile": true,
"first_name": "حمد",
"last_name": "بنقالي",
"username": "x7md",
"bio": "شاب سعودي، مهتم بالبرمجة، والتصميم الرقمي.",
"country_name": "المملكة العربية السعودية",
"city": "مكة المكرمة",
"social_links": [
{"site": "GITHUB", "handle": "x7md"},
{"site": "TWITTER", "handle": "anb9"}
],
"education": [
{
"name": "highSchool",
"major": "",
"institution": "عكرمة بن عمرو",
"start_at": "2019-03-31T00:00:00+00:00",
"end_at": "2021-03-31T00:00:00+00:00"
}
],
"certificates": [
{
"name": "التوعية بمخاطر الأمن السيبراني",
"institution": "دروب - صندوق تنمية الموارد البشرية",
"received_at": "2020-04-23T00:00:00+00:00",
"expires_at": "2020-04-23T00:00:00+00:00",
"expired": false,
"is_training_certificate": false
}
],
"programming_languages": [
{"programming_language": "JavaScript", "experience": "1 - 2 سنوات"},
{"programming_language": "Shell", "experience": "أقل من سنة"},
{"programming_language": "SQL", "experience": "أقل من سنة"}
],
"extra_public_fields": [
"are_you_a_trainer", "looking_for_job_type", "occupation"
],
"is_looking_for_job": null,
"looking_for_job_type": "training",
"are_you_a_trainer": false,
"occupation": "college student",
"preferred_language": "JavaScript"
},
"user_badges": []
}
get user statistics:
from coderHub import CoderHub
coder_hub = CoderHub()
print(coder_hub.get_user_statistics(username="x7md"))
Example Result
{
"programming_languages": [
{"programming_language_name": "JavaScript", "name": "سهل", "solved_challenges": 59},
{"programming_language_name": "JavaScript", "name": "صعب", "solved_challenges": 11},
{"programming_language_name": "JavaScript", "name": "متوسط", "solved_challenges": 32},
{"programming_language_name": "Java", "name": "سهل", "solved_challenges": 12}
],
"total_solved_per_programming_language": [
{"programming_language_name": "Java", "total_solved": 12},
{"programming_language_name": "JavaScript", "total_solved": 102}
],
"total_solved_challenges": 114
}
LICENSE
Metadata
Release files for coderHub 1.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| coderHub-1.1.2.tar.gz | 8.7 kB | Without provenance | Details for coderHub-1.1.2.tar.gz |
Release files / coderHub-1.1.2.tar.gz
| Download URL | coderHub-1.1.2.tar.gz |
|---|---|
| Size | 8.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
75f976e4b49dc7a169010392e3b2df8ae8f596cd9129f2dc4e00c2bbfb2366e5
|
|
BLAKE2b-256 checksum How to use checksums |
8422c051eaaee6900f0b12b895961ed3d363b44ee57298a61c39d2ac74d941dc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.5
|
Security for coderHub 1.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.