From a96a057fa6ecd9238e7e08d82f59a5e480ecb9ac Mon Sep 17 00:00:00 2001 From: scrtree Date: Thu, 23 Dec 2021 21:18:03 +0900 Subject: [PATCH] Add comments. --- CHANGELOG.md | 4 +++ lib/ogp_data_extract.dart | 4 +++ lib/src/base_ogp_data_parser.dart | 1 + lib/src/ogp_data_extract_base.dart | 2 ++ lib/src/ogp_data_parser.dart | 39 ++++++++++++++++++++++++++++++ lib/utility/user_agent_client.dart | 1 + pubspec.yaml | 4 +-- 7 files changed, 53 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7bfa1dd..50c7102 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.2 + +* Resolve that more than 20% of public APIs are dartdoc comments. + ## 0.1.1 * Resolve the failure of the pub.dev score. diff --git a/lib/ogp_data_extract.dart b/lib/ogp_data_extract.dart index 3a2151f..155a0a4 100644 --- a/lib/ogp_data_extract.dart +++ b/lib/ogp_data_extract.dart @@ -1,3 +1,7 @@ +/// This library provides OgpData Parser for retrieving and parsing documents on a web page. +/// +/// [OgpDataParser] is OgpData parser that takes in a [dom.Document]. +/// Utility functions [execute] and [toDocument] help retrieving and decoding documents. library ogp_data_extract; export 'src/ogp_data_extract_base.dart'; diff --git a/lib/src/base_ogp_data_parser.dart b/lib/src/base_ogp_data_parser.dart index 349c83a..b094a76 100644 --- a/lib/src/base_ogp_data_parser.dart +++ b/lib/src/base_ogp_data_parser.dart @@ -126,6 +126,7 @@ mixin BaseOgpDataParser { } } +/// Container class for OgpData. class OgpData with BaseOgpDataParser, OgpDataKeys { @override String toString() { diff --git a/lib/src/ogp_data_extract_base.dart b/lib/src/ogp_data_extract_base.dart index dcf5e48..2c60a7d 100644 --- a/lib/src/ogp_data_extract_base.dart +++ b/lib/src/ogp_data_extract_base.dart @@ -7,6 +7,7 @@ import 'package:ogp_data_extract/utility/user_agent_client.dart'; import 'package:string_validator/string_validator.dart'; class OgpDataExtract { + /// returns [OgpData] from [url] and [userAgent]. static Future execute(String url, {String userAgent = 'bot'}) async { if (!isURL(url)) { @@ -24,6 +25,7 @@ class OgpDataExtract { return OgpDataParser(document).parse(); } + /// returns [html.Document] from [http.Response]. static Document? toDocument(http.Response response) { if (response.statusCode != 200) { return null; diff --git a/lib/src/ogp_data_parser.dart b/lib/src/ogp_data_parser.dart index b8c775b..e6e1a92 100644 --- a/lib/src/ogp_data_parser.dart +++ b/lib/src/ogp_data_parser.dart @@ -5,120 +5,159 @@ class OgpDataParser with BaseOgpDataParser { final Document? _document; OgpDataParser(this._document); + /// Get [OgpData.url] from 'og:url'. @override String? get url => _getContent(property: 'og:url'); + /// Get [OgpData.type] from 'og:type'. @override String? get type => _getContent(property: 'og:type'); + /// Get [OgpData.title] from 'og:title'. @override String? get title => _getContent(property: 'og:title'); + /// Get [OgpData.description] from 'og:description'. @override String? get description => _getContent(property: 'og:description'); + /// Get [OgpData.image] from 'og:image'. @override String? get image => _getContent(property: 'og:image'); + /// Get [OgpData.imageSecureUrl] from 'og:image:secure_url'. @override String? get imageSecureUrl => _getContent(property: 'og:image:secure_url'); + /// Get [OgpData.imageType] from 'og:image:type'. @override String? get imageType => _getContent(property: 'og:image:type'); + /// Get [OgpData.imageWidth] from 'og:image:width'. @override String? get imageWidth => _getContent(property: 'og:image:width'); + /// Get [OgpData.imageHeight] from 'og:image:height'. @override String? get imageHeight => _getContent(property: 'og:image:height'); + /// Get [OgpData.imageAlt] from 'og:image:alt'. @override String? get imageAlt => _getContent(property: 'og:image:alt'); + /// Get [OgpData.siteName] from 'og:site_name'. @override String? get siteName => _getContent(property: 'og:site_name'); + /// Get [OgpData.determiner] from 'og:determiner'. @override String? get determiner => _getContent(property: 'og:determiner'); + /// Get [OgpData.locale] from 'og:locale'. @override String? get locale => _getContent(property: 'og:locale'); + /// Get [OgpData.localeAlternate] from 'og:locale:alternate'. @override String? get localeAlternate => _getContent(property: 'og:locale:alternate'); + /// Get [OgpData.latitude] from 'og:latitude'. @override String? get latitude => _getContent(property: 'og:latitude'); + /// Get [OgpData.longitude] from 'og:longitude'. @override String? get longitude => _getContent(property: 'og:longitude'); + /// Get [OgpData.streetAddress] from 'og:street-address'. @override String? get streetAddress => _getContent(property: 'og:street-address'); + /// Get [OgpData.locality] from 'og:locality'. @override String? get locality => _getContent(property: 'og:locality'); + /// Get [OgpData.region] from 'og:region'. @override String? get region => _getContent(property: 'og:region'); + /// Get [OgpData.postalCode] from 'og:postal-code'. @override String? get postalCode => _getContent(property: 'og:postal-code'); + /// Get [OgpData.countryName] from 'og:country-name'. @override String? get countryName => _getContent(property: 'og:country-name'); + /// Get [OgpData.email] from 'og:email'. @override String? get email => _getContent(property: 'og:email'); + /// Get [OgpData.phoneNumber] from 'og:phone_number'. @override String? get phoneNumber => _getContent(property: 'og:phone_number'); + /// Get [OgpData.faxNumber] from 'og:fax_number'. @override String? get faxNumber => _getContent(property: 'og:fax_number'); + /// Get [OgpData.video] from 'og:video'. @override String? get video => _getContent(property: 'og:video'); + /// Get [OgpData.videoSecureUrl] from 'og:video:secure_url'. @override String? get videoSecureUrl => _getContent(property: 'og:video:secure_url'); + /// Get [OgpData.videoHeight] from 'og:video:height'. @override String? get videoHeight => _getContent(property: 'og:video:height'); + /// Get [OgpData.videoWidth] from 'og:video:width'. @override String? get videoWidth => _getContent(property: 'og:video:width'); + /// Get [OgpData.videoType] from 'og:video:type'. @override String? get videoType => _getContent(property: 'og:video:type'); + /// Get [OgpData.audio] from 'og:audio'. @override String? get audio => _getContent(property: 'og:audio'); + /// Get [OgpData.audioSecureUrl] from 'og:audio:secure_url'. @override String? get audioSecureUrl => _getContent(property: 'og:audio:secure_url'); + /// Get [OgpData.audioTitle] from 'og:audio:title'. @override String? get audioTitle => _getContent(property: 'og:audio:title'); + /// Get [OgpData.audioArtist] from 'og:audio:artist'. @override String? get audioArtist => _getContent(property: 'og:audio:artist'); + /// Get [OgpData.audioAlbum] from 'og:audio:album'. @override String? get audioAlbum => _getContent(property: 'og:audio:album'); + /// Get [OgpData.audioType] from 'og:audio:type'. @override String? get audioType => _getContent(property: 'og:audio:type'); + /// Get [OgpData.fbAdmins] from 'fb:admins'. @override String? get fbAdmins => _getContent(property: 'fb:admins'); + /// Get [OgpData.fbAppId] from 'fb:app_id'. @override String? get fbAppId => _getContent(property: 'fb:app_id'); + /// Get [OgpData.twitterCard] from 'twitter:card'. @override String? get twitterCard => _getContent(property: 'twitter:card'); + /// Get [OgpData.twitterSite] from 'twitter:site'. @override String? get twitterSite => _getContent(property: 'twitter:site'); diff --git a/lib/utility/user_agent_client.dart b/lib/utility/user_agent_client.dart index a27ce8a..6300c8b 100644 --- a/lib/utility/user_agent_client.dart +++ b/lib/utility/user_agent_client.dart @@ -1,5 +1,6 @@ import 'package:http/http.dart' as http; +/// The class to set user-agent for Http. class UserAgentClient extends http.BaseClient { final String userAgent; final http.Client _client; diff --git a/pubspec.yaml b/pubspec.yaml index 4e052cb..d520866 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: ogp_data_extract description: A new Flutter package project for extracting ogp data on web pages. -version: 0.1.1 -homepage: https://github.com/KINTO-JP +version: 0.1.2 +homepage: https://github.com/KINTO-JP/ogp_data_extract environment: sdk: ">=2.12.0 <3.0.0"