extractTwitterCard method
Extracts Twitter Card data from HTML
Implementation
List<StructuredDataExtractionResult> extractTwitterCard(String html) {
final document = html_parser.parse(html);
final results = <StructuredDataExtractionResult>[];
try {
// Find all meta tags with name starting with "twitter:"
final metaTags = document.querySelectorAll('meta[name^="twitter:"]');
if (metaTags.isEmpty) {
return results;
}
final data = <String, dynamic>{};
for (final metaTag in metaTags) {
final name = metaTag.attributes['name'];
final content = metaTag.attributes['content'];
if (name != null && content != null) {
// Remove the "twitter:" prefix
final key = name.substring(8);
data[key] = content;
}
}
if (data.isNotEmpty) {
// Add type information
data['@type'] = 'TwitterCard';
results.add(
StructuredDataExtractionResult(
type: StructuredDataType.twitterCard,
data: data,
rawData: metaTags.map((e) => e.outerHtml).join('\n'),
),
);
}
logger?.info('Extracted ${results.length} Twitter Card items');
} catch (e) {
logger?.error('Error extracting Twitter Card data: $e');
}
return results;
}