airbyte-source-google-search-console 1.5.3__tar.gz → 1.5.5__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (25) hide show
  1. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/PKG-INFO +1 -1
  2. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/pyproject.toml +1 -1
  3. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/streams.py +21 -10
  4. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/README.md +0 -0
  5. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/__init__.py +0 -0
  6. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/config_migrations.py +0 -0
  7. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/exceptions.py +0 -0
  8. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/run.py +0 -0
  9. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/schemas/search_analytics_all_fields.json +0 -0
  10. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/schemas/search_analytics_by_country.json +0 -0
  11. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/schemas/search_analytics_by_date.json +0 -0
  12. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/schemas/search_analytics_by_device.json +0 -0
  13. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/schemas/search_analytics_by_page.json +0 -0
  14. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/schemas/search_analytics_by_query.json +0 -0
  15. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/schemas/search_analytics_keyword_page_report.json +0 -0
  16. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/schemas/search_analytics_keyword_site_report_by_page.json +0 -0
  17. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/schemas/search_analytics_keyword_site_report_by_site.json +0 -0
  18. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/schemas/search_analytics_page_report.json +0 -0
  19. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/schemas/search_analytics_site_report_by_page.json +0 -0
  20. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/schemas/search_analytics_site_report_by_site.json +0 -0
  21. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/schemas/sitemaps.json +0 -0
  22. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/schemas/sites.json +0 -0
  23. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/service_account_authenticator.py +0 -0
  24. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/source.py +0 -0
  25. {airbyte_source_google_search_console-1.5.3 → airbyte_source_google_search_console-1.5.5}/source_google_search_console/spec.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-source-google-search-console
3
- Version: 1.5.3
3
+ Version: 1.5.5
4
4
  Summary: Source implementation for Google Search Console.
5
5
  Home-page: https://airbyte.com
6
6
  License: Elv2
@@ -5,7 +5,7 @@ requires = [
5
5
  build-backend = "poetry.core.masonry.api"
6
6
 
7
7
  [tool.poetry]
8
- version = "1.5.3"
8
+ version = "1.5.5"
9
9
  name = "airbyte-source-google-search-console"
10
10
  description = "Source implementation for Google Search Console."
11
11
  authors = [
@@ -374,8 +374,28 @@ class SearchByKeyword(SearchAnalytics):
374
374
  """
375
375
  Adds searchAppearance value to dimensionFilterGroups in json body
376
376
  https://developers.google.com/webmaster-tools/v1/how-tos/all-your-data#search-appearance-data
377
+
378
+ groupType: "and" - Whether all filters in this group must return true ("and"), or one or more must return true (not yet supported).
379
+ filters: {"dimension": "searchAppearance", "operator": "equals", "expression": keyword}
377
380
  """
378
381
 
382
+ def stream_slices(
383
+ self, sync_mode: SyncMode, cursor_field: List[str] = None, stream_state: Mapping[str, Any] = None
384
+ ) -> Iterable[Optional[Mapping[str, Any]]]:
385
+ search_appearance_stream = SearchAppearance(self._session.auth, self._site_urls, self._start_date, self._end_date)
386
+
387
+ for stream_slice in super().stream_slices(sync_mode, cursor_field, stream_state):
388
+ keywords_records = search_appearance_stream.read_records(
389
+ sync_mode=SyncMode.full_refresh, stream_state=stream_state, stream_slice=stream_slice
390
+ )
391
+ keywords = {record["searchAppearance"] for record in keywords_records}
392
+
393
+ for keyword in keywords:
394
+ filters = {"dimension": "searchAppearance", "operator": "equals", "expression": keyword}
395
+ stream_slice["dimensionFilterGroups"] = [{"groupType": "and", "filters": filters}]
396
+
397
+ yield stream_slice
398
+
379
399
  def request_body_json(
380
400
  self,
381
401
  stream_state: Mapping[str, Any] = None,
@@ -383,16 +403,7 @@ class SearchByKeyword(SearchAnalytics):
383
403
  next_page_token: Mapping[str, Any] = None,
384
404
  ) -> Optional[Union[Dict[str, Any], str]]:
385
405
  data = super().request_body_json(stream_state, stream_slice, next_page_token)
386
-
387
- stream = SearchAppearance(self._session.auth, self._site_urls, self._start_date, self._end_date)
388
- keywords_records = stream.read_records(sync_mode=SyncMode.full_refresh, stream_state=stream_state, stream_slice=stream_slice)
389
- keywords = {record["searchAppearance"] for record in keywords_records}
390
- filters = []
391
- for keyword in keywords:
392
- filters.append({"dimension": "searchAppearance", "operator": "equals", "expression": keyword})
393
-
394
- data["dimensionFilterGroups"] = [{"filters": filters}]
395
-
406
+ data["dimensionFilterGroups"] = stream_slice["dimensionFilterGroups"]
396
407
  return data
397
408
 
398
409