dartpedia 1.6.0

An API Wrapper for the MediaWiki API

Created by Benjamin Whitehead

pub package Build Status

This is an early implementation of the MediaWiki API in Dart. Note, there are still some issues with this API that will be worked on in the coming months. Some of these issues include: unclean data and over use of dynamic types.

Getting Started #

To get started, simply add dartpedia to pubspec.yaml:

dependencies:
  dartpedia: ^1.6.0

Using #

To use dartpedia, first start by importing the package.

import 'package:dartpedia/dartpedia.dart' as wiki;

Next, create a new WikipediaPage object with the wiki.page(topic) function.

var wikipediaPage = await wiki.page('Dart (programming language)');

Use the .summary() function to print a summary of the page.

print(wikipediaPage.summary());

To get the individual components of a page, use the following functions

var url = wikipediaPage.url;
var title = wikipediaPage.title;
var links = wikipediaPage.links;
var content = wikipediaPage.content;

To search for possible topics for a phrase, use the .search(topic) function

var relatedTopics = await wiki.search("Dart");
print(relatedTopics);

Examples: #

More examples can be found in the Examples folder

1.0.0 #

Initial Release

1.0.1 #

Updated project information and formatted code

1.0.2 #

Updated README.md

Added additional documentation to page.dart

1.0.3 #

Added additional summary functions to page.dart

Added Unit Tests for page.dart

Updated the /example README to contain code for the examples found in the folder

1.5.0 #

Abstracted a lot of the classes and responses behind the scene

Added testing for search.dart

Added searching capabilities, see example and README for details

1.6.0 #

Added Travis CI support

example/README.md

Examples: #

The following are example programs using the dartpedia package:

  • Getting all unique words in a given Wikipedia Page
  • Getting the sum of all lengths of words in a given Wikipedia's Sub Pages
  • Getting all related topics to a given topic

Examples #

Getting all unique words in a given Wikipedia Page: #

import 'package:dartpedia/dartpedia.dart' as wiki;
main() async {
  var words = [];
  try {
    var page = await wiki.page('New York City');
    var pageContents = ((page.content).split(' '));
    pageContents.forEach((e) {
      if (!words.contains(e)) {
        words.add(e);
      }
    });
  } catch (exception) {
    print(exception);
  }
  print(words);
}

Summing up the lengths of all the words in each sub page of a given topic: #

import 'package:dartpedia/dartpedia.dart' as wiki;
int addWordsInPage(wiki.WikipediaPage page) {
  print('Summing Words in: ${page.title}');
  int subSum = 0;
  ((page.content).split(' ')).forEach((e) => {subSum += e.length});
  return subSum;
}
main() async {
  int sum = 0;
  try {
    var page = await wiki.page('\"Hello, World!\" program');
    for (var x in page.links) {
      var subPage = await wiki.page(x);
      sum += addWordsInPage(subPage);
    }
  } catch (ex) {
    print(ex);
  }
  print('Total $sum');
}
import 'package:dartpedia/dartpedia.dart' as wiki;

main() async {
  var relatedTopics = await wiki.search('California');
  print(relatedTopics);
}

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  dartpedia: ^1.6.0

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:dartpedia/dartpedia.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
12
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100
Overall:
Weighted score of the above. [more]
56
Learn more about scoring.

We analyzed this package on Aug 25, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.4.0
  • pana: 0.12.19
  • Flutter: 1.7.8+hotfix.4

Platforms

Detected platforms: Flutter

References Flutter, and has no conflicting libraries.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.2.0 <3.0.0
dio ^2.1.3 2.1.16
test ^1.5.0 1.6.8
Transitive dependencies
analyzer 0.38.1
args 1.5.2
async 2.3.0
boolean_selector 1.0.5
charcode 1.1.2
collection 1.14.12
convert 2.1.1
cookie_jar 1.0.1
crypto 2.1.2
csslib 0.16.1
front_end 0.1.23
glob 1.1.7
html 0.14.0+2
http 0.12.0+2
http_multi_server 2.1.0
http_parser 3.1.3
io 0.3.3
js 0.6.1+1
kernel 0.3.23
matcher 0.12.5
meta 1.1.7
mime 0.9.6+3
multi_server_socket 1.0.2
node_preamble 1.4.6
package_config 1.1.0
package_resolver 1.0.10
path 1.6.4
pedantic 1.8.0+1
pool 1.4.0
pub_semver 1.4.2
shelf 0.7.5
shelf_packages_handler 1.0.4
shelf_static 0.2.8
shelf_web_socket 0.2.3
source_map_stack_trace 1.1.5
source_maps 0.10.8
source_span 1.5.5
stack_trace 1.9.3
stream_channel 2.0.0
string_scanner 1.0.5
term_glyph 1.1.0
test_api 0.2.7
test_core 0.2.9
typed_data 1.1.6
vm_service 1.1.1
watcher 0.9.7+12
web_socket_channel 1.0.15
yaml 2.1.16