open_trivia_db 1.0.0 copy "open_trivia_db: ^1.0.0" to clipboard
open_trivia_db: ^1.0.0 copied to clipboard

Dart interface to https://opentdb.com/.

example/open_trivia_db_example.dart

import 'dart:io';

import 'package:dio/dio.dart';
import 'package:html_unescape/html_unescape.dart';
import 'package:open_trivia_db/open_trivia_db.dart';

Future<void> main() async {
  final http = Dio();
  final factory = QuestionFactory(http);
  final categories = await factory.getCategories();
  final category = categories
      .firstWhere((element) => element.name.toLowerCase().contains('music'));
  await factory.getCategoryQuestionCount(categories.first);
  final unescape = HtmlUnescape();
  final questions = await factory.getQuestions(
      amount: 20,
      category: category,
      difficulty: QuestionDifficulties.easy,
      type: QuestionTypes.multiple);
  final f = File('questions.txt');
  final writer = f.openWrite();
  var i = 1;
  for (final q in questions) {
    writer.writeln('$i. ${unescape.convert(q.question)}');
    final answers = q.answers..shuffle();
    for (final a in answers) {
      writer
          .writeln('${a == q.correctAnswer ? "* " : ""}${unescape.convert(a)}');
    }
    writer.writeln();
    i++;
  }
  await writer.close();
}