218 lines
5.4 KiB
Python
218 lines
5.4 KiB
Python
|
#!/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]
|
||
|
|
||
|
|