leetcode_unofficial_api 0.0.1 copy "leetcode_unofficial_api: ^0.0.1" to clipboard
leetcode_unofficial_api: ^0.0.1 copied to clipboard

A unofficial API of leetcode.

LeetCode Unofficial API #

A Dart package providing an unofficial API for interacting with LeetCode. This package allows you to fetch user details, language statistics, user badges, recent submissions, solved problem counts, and more.

Features: #

Scrape problem data: Access problem titles, difficulties, categories, acceptance rates, and potentially other publicly available information (subject to LeetCode's website structure changes).

Retrieve user data: Fetch details like profile information, language-wise problem counts, badges earned, recent submissions, and solved problem count.

Get problem details: Obtain information about the daily challenge problem or a specific problem by its title slug.

Lightweight and flexible: Designed for ease of use in various programming environments.

Unofficial and community-driven: Continuously maintained and improved by the developer community.

Disclaimer: #

Unofficial: This API is not affiliated with or endorsed by LeetCode.

Respectful usage: Use responsibly and ethically, adhering to LeetCode's terms of service and avoiding excessive scraping that could overload their servers.

Rate limiting: Be prepared to implement rate limiting mechanisms in your code to prevent overwhelming LeetCode's infrastructure. LeetCode may throttle requests or block IP addresses if usage patterns violate their guidelines.

Installation #

To use this package, add leetcode_api as a dependency in your pubspec.yaml file:

dependencies:
  leetcode_api: ^1.0.0

Then, run:

$ flutter pub get

Usage #

Import the package: #

import 'package:leetcode_api/leetcode_api.dart';

Initialize the API with your LeetCode username:

await LeetCodeAPI.initializeApp('your_username');

Now, you can use the provided methods to interact with the LeetCode API:

final UserData? userData = await LeetCodeAPI.instance.userData();
final LanguagesAndProblemCounts? = await LeetCodeAPI.instance.languageStats();
final LCBadges? userBadges = await LeetCodeAPI.instance.userBadges();
final LCBadge? userActiveBadge = await LeetCodeAPI.instance.userActiveBadge();
final Submissions? recentSubmissions = await LeetCodeAPI.instance.recentSubmissions();
final SubmitStats? solvedProblemCount = await LeetCodeAPI.instance.solvedProblemCount();
final Problem dailyProblem = await LeetCodeAPI.instance.dailyProblem();
final Problem selectedProblem = await LeetCodeAPI.instance.selectProblem(titleSlug: 'two-sum');

Methods #

initializeApp #

Initialize the LeetCode API with your username.

await LeetCodeAPI.initializeApp('your_username');

userData #

Fetch user details.

final UserData ?userData = await LeetCodeAPI.instance.userData();

languageStats #

Fetch language statistics.

final LanguagesAndProblemCounts? languageStats = await LeetCodeAPI.instance.languageStats();

userBadges #

Fetch user badges.

final LCBadges? userBadges = await LeetCodeAPI.instance.userBadges();

userActiveBadge #

Fetch user's active badge.

final  LCBadge? userActiveBadge = await LeetCodeAPI.instance.userActiveBadge();

recentSubmissions #

Fetch recent submissions.

final Submissions? recentSubmissions = await LeetCodeAPI.instance.recentSubmissions();

solvedProblemCount #

Fetch the count of solved problems.

final SubmitStats? solvedProblemCount = await LeetCodeAPI.instance.solvedProblemCount();

dailyProblem #

Fetch the daily problem.

final Problem? dailyProblem = await LeetCodeAPI.instance.dailyProblem();

selectProblem #

Fetch a specific problem by its title slug.

final Problem? selectedProblem = await LeetCodeAPI.instance.selectProblem(titleSlug: 'problem_title_slug');

Exception Handling #

The API methods may throw LeetCodeAPIException if not initialized or if the user does not exist.

try {
  // API method calls
} on LeetCodeAPIException catch (e) {
  print('LeetCode API Exception: ${e.errorCode}');
}

Contributing: #

We welcome contributions from the community! Feel free to submit pull requests with enhancements, bug fixes, or additional features.

1
likes
120
points
25
downloads

Publisher

unverified uploader

Weekly Downloads

A unofficial API of leetcode.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, http

More

Packages that depend on leetcode_unofficial_api