#!/usr/bin/python # # Copyright (C) 2009 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Contains the data classes of the Google Webmaster Tools Data API""" __author__ = 'j.s@google.com (Jeff Scudder)' import atom.core import atom.data import gdata.data import gdata.opensearch.data WT_TEMPLATE = '{http://schemas.google.com/webmaster/tools/2007/}%s' class CrawlIssueCrawlType(atom.core.XmlElement): """Type of crawl of the crawl issue""" _qname = WT_TEMPLATE % 'crawl-type' class CrawlIssueDateDetected(atom.core.XmlElement): """Detection date for the issue""" _qname = WT_TEMPLATE % 'date-detected' class CrawlIssueDetail(atom.core.XmlElement): """Detail of the crawl issue""" _qname = WT_TEMPLATE % 'detail' class CrawlIssueIssueType(atom.core.XmlElement): """Type of crawl issue""" _qname = WT_TEMPLATE % 'issue-type' class CrawlIssueLinkedFromUrl(atom.core.XmlElement): """Source URL that links to the issue URL""" _qname = WT_TEMPLATE % 'linked-from' class CrawlIssueUrl(atom.core.XmlElement): """URL affected by the crawl issue""" _qname = WT_TEMPLATE % 'url' class CrawlIssueEntry(gdata.data.GDEntry): """Describes a crawl issue entry""" date_detected = CrawlIssueDateDetected url = CrawlIssueUrl detail = CrawlIssueDetail issue_type = CrawlIssueIssueType crawl_type = CrawlIssueCrawlType linked_from = [CrawlIssueLinkedFromUrl] class CrawlIssuesFeed(gdata.data.GDFeed): """Feed of crawl issues for a particular site""" entry = [CrawlIssueEntry] class Indexed(atom.core.XmlElement): """Describes the indexing status of a site""" _qname = WT_TEMPLATE % 'indexed' class Keyword(atom.core.XmlElement): """A keyword in a site or in a link to a site""" _qname = WT_TEMPLATE % 'keyword' source = 'source' class KeywordEntry(gdata.data.GDEntry): """Describes a keyword entry""" class KeywordsFeed(gdata.data.GDFeed): """Feed of keywords for a particular site""" entry = [KeywordEntry] keyword = [Keyword] class LastCrawled(atom.core.XmlElement): """Describes the last crawled date of a site""" _qname = WT_TEMPLATE % 'last-crawled' class MessageBody(atom.core.XmlElement): """Message body""" _qname = WT_TEMPLATE % 'body' class MessageDate(atom.core.XmlElement): """Message date""" _qname = WT_TEMPLATE % 'date' class MessageLanguage(atom.core.XmlElement): """Message language""" _qname = WT_TEMPLATE % 'language' class MessageRead(atom.core.XmlElement): """Indicates if the message has already been read""" _qname = WT_TEMPLATE % 'read' class MessageSubject(atom.core.XmlElement): """Message subject""" _qname = WT_TEMPLATE % 'subject' class SiteId(atom.core.XmlElement): """Site URL""" _qname = WT_TEMPLATE % 'id' class MessageEntry(gdata.data.GDEntry): """Describes a message entry""" wt_id = SiteId subject = MessageSubject date = MessageDate body = MessageBody language = MessageLanguage read = MessageRead class MessagesFeed(gdata.data.GDFeed): """Describes a messages feed""" entry = [MessageEntry] class SitemapEntry(gdata.data.GDEntry): """Describes a sitemap entry""" indexed = Indexed wt_id = SiteId class SitemapMobileMarkupLanguage(atom.core.XmlElement): """Describes a markup language for URLs in this sitemap""" _qname = WT_TEMPLATE % 'sitemap-mobile-markup-language' class SitemapMobile(atom.core.XmlElement): """Lists acceptable mobile markup languages for URLs in this sitemap""" _qname = WT_TEMPLATE % 'sitemap-mobile' sitemap_mobile_markup_language = [SitemapMobileMarkupLanguage] class SitemapNewsPublicationLabel(atom.core.XmlElement): """Specifies the publication label for this sitemap""" _qname = WT_TEMPLATE % 'sitemap-news-publication-label' class SitemapNews(atom.core.XmlElement): """Lists publication labels for this sitemap""" _qname = WT_TEMPLATE % 'sitemap-news' sitemap_news_publication_label = [SitemapNewsPublicationLabel] class SitemapType(atom.core.XmlElement): """Indicates the type of sitemap. Not used for News or Mobile Sitemaps""" _qname = WT_TEMPLATE % 'sitemap-type' class SitemapUrlCount(atom.core.XmlElement): """Indicates the number of URLs contained in the sitemap""" _qname = WT_TEMPLATE % 'sitemap-url-count' class SitemapsFeed(gdata.data.GDFeed): """Describes a sitemaps feed""" entry = [SitemapEntry] class VerificationMethod(atom.core.XmlElement): """Describes a verification method that may be used for a site""" _qname = WT_TEMPLATE % 'verification-method' in_use = 'in-use' type = 'type' class Verified(atom.core.XmlElement): """Describes the verification status of a site""" _qname = WT_TEMPLATE % 'verified' class SiteEntry(gdata.data.GDEntry): """Describes a site entry""" indexed = Indexed wt_id = SiteId verified = Verified last_crawled = LastCrawled verification_method = [VerificationMethod] class SitesFeed(gdata.data.GDFeed): """Describes a sites feed""" entry = [SiteEntry]