First version of referers_diff
This commit is contained in:
		| @@ -197,7 +197,7 @@ class IWLADisplayReferers(IPlugin): | ||||
|  | ||||
|             total_search = [0]*2 | ||||
|             page = display.createPage(title, path, self.iwla.getConfValue('css_path', [])) | ||||
|             table = display.createBlock(DisplayHTMLBlockTable, self.iwla._(u'Top key phrases'), [self.iwla._(u'Key phrase'), self.iwla._(u'Search')]) | ||||
|             table = display.createBlock(DisplayHTMLBlockTable, self.iwla._(u'All key phrases'), [self.iwla._(u'Key phrase'), self.iwla._(u'Search')]) | ||||
|             table.setColsCSSClass(['', 'iwla_search']) | ||||
|             new_list = self.max_key_phrases and top_key_phrases[:self.max_key_phrases] or top_key_phrases | ||||
|             for phrase in new_list: | ||||
|   | ||||
							
								
								
									
										84
									
								
								plugins/display/referers_diff.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								plugins/display/referers_diff.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,84 @@ | ||||
| # -*- coding: utf-8 -*- | ||||
| # | ||||
| # Copyright Grégory Soutadé 2015 | ||||
|  | ||||
| # This file is part of iwla | ||||
|  | ||||
| # iwla is free software: you can redistribute it and/or modify | ||||
| # it under the terms of the GNU General Public License as published by | ||||
| # the Free Software Foundation, either version 3 of the License, or | ||||
| # (at your option) any later version. | ||||
| # | ||||
| # iwla is distributed in the hope that it will be useful, | ||||
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| # GNU General Public License for more details. | ||||
| # | ||||
| # You should have received a copy of the GNU General Public License | ||||
| # along with iwla.  If not, see <http://www.gnu.org/licenses/>. | ||||
| # | ||||
|  | ||||
| from iwla import IWLA | ||||
| from iplugin import IPlugin | ||||
| from display import * | ||||
|  | ||||
| """ | ||||
| Display hook | ||||
|  | ||||
| Enlight new and updated key phrases in in all_key_phrases.html | ||||
|  | ||||
| Plugin requirements : | ||||
|     display/referers | ||||
|  | ||||
| Conf values needed : | ||||
|     None | ||||
|  | ||||
| Output files : | ||||
|     None | ||||
|  | ||||
| Statistics creation : | ||||
|     None | ||||
|  | ||||
| Statistics update : | ||||
|     None | ||||
|  | ||||
| Statistics deletion : | ||||
|     None | ||||
| """ | ||||
|  | ||||
| class IWLADisplayReferersDiff(IPlugin): | ||||
|     def __init__(self, iwla): | ||||
|         super(IWLADisplayReferersDiff, self).__init__(iwla) | ||||
|         self.API_VERSION = 1 | ||||
|         self.requires = ['IWLADisplayReferers'] | ||||
|  | ||||
|     def load(self): | ||||
|         if not self.iwla.getConfValue('create_all_key_phrases_page', True): | ||||
|             return False | ||||
|         month_stats = self.iwla.getMonthStats() | ||||
|         self.cur_key_phrases = {k:v for (k,v) in month_stats.get('key_phrases', {})} | ||||
|         return True | ||||
|  | ||||
|     def hook(self): | ||||
|         display = self.iwla.getDisplay() | ||||
|         month_stats = self.iwla.getMonthStats() | ||||
|  | ||||
|         filename = 'key_phrases.html' | ||||
|         path = self.iwla.getCurDisplayPath(filename) | ||||
|         page = display.getPage(path) | ||||
|         if not page: return | ||||
|         title = self.iwla._(u'All key phrases') | ||||
|         referers_block = page.getBlock(title) | ||||
|  | ||||
|         kp_diff = {} | ||||
|         for (k, v) in month_stats['key_phrases'].items(): | ||||
|             new_value = self.cur_key_phrases.get(k, 0) | ||||
|             if new_value: | ||||
|                 if new_value != v: | ||||
|                     kp_diff[k] = 'iwla_update' | ||||
|             else: | ||||
|                 kp_diff[k] = 'iwla_new' | ||||
|  | ||||
|         for (idx, row) in enumerate(referers_block.rows): | ||||
|             if row[0] in kp_diff.keys(): | ||||
|                 referers_block.setCellCSSClass(idx, 0, kp_diff[row[0]]) | ||||
		Reference in New Issue
	
	Block a user