git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v6 26/31] git-remote-mediawiki: Put non-trivial numeric values in constants.

From
Célestin Matte <celestin.matte@ensimag.fr>
Date
Jun 14, 2013, 13:50 UTC
Message-ID
<1371217839-23017-27-git-send-email-celestin.matte@ensimag.fr>
In-Reply-To
<1371217839-23017-1-git-send-email-celestin.matte@ensimag.fr>
From: Célestin Matte <celestin.matte@ensimag.fr>

Non-trivial numeric values (e.g., different from 0, 1 and 2) are placed in constants at the top of the code to be easily modifiable and to make more sense

Signed-off-by: Célestin Matte <celestin.matte@ensimag.fr>
Signed-off-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr>
---
 contrib/mw-to-git/git-remote-mediawiki.perl | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/contrib/mw-to-git/git-remote-mediawiki.perl b/contrib/mw-to-git/git-remote-mediawiki.perl
index d1e0bb8..1cedbee 100755
--- a/contrib/mw-to-git/git-remote-mediawiki.perl
+++ b/contrib/mw-to-git/git-remote-mediawiki.perl
@@ -42,6 +42,16 @@ use constant EMPTY_MESSAGE => '*Empty MediaWiki Message*';
 
 use constant EMPTY => q{};
 
+# Number of pages taken into account at once in submodule get_mw_page_list
+use constant SLICE_SIZE => 50;
+
+# Number of linked mediafile to get at once in get_linked_mediafiles
+# The query is split in small batches because of the MW API limit of
+# the number of links to be returned (500 links max).
+use constant BATCH_SIZE => 10;
+
+use constant HTTP_CODE_OK => 200;
+
 my $remotename = $ARGV[0];
 my $url = $ARGV[1];
 
@@ -229,13 +239,13 @@ sub get_mw_page_list {
 	my $pages = shift;
 	my @some_pages = @$page_list;
 	while (@some_pages) {
-		my $last_page = 50;
+		my $last_page = SLICE_SIZE;
 		if ($#some_pages < $last_page) {
 			$last_page = $#some_pages;
 		}
 		my @slice = @some_pages[0..$last_page];
 		get_mw_first_pages(\@slice, $pages);
-		@some_pages = @some_pages[51..$#some_pages];
+		@some_pages = @some_pages[(SLICE_SIZE + 1)..$#some_pages];
 	}
 	return;
 }
@@ -385,9 +395,7 @@ sub get_linked_mediafiles {
 	my $pages = shift;
 	my @titles = map { $_->{title} } values(%{$pages});
 
-	# The query is split in small batches because of the MW API limit of
-	# the number of links to be returned (500 links max).
-	my $batch = 10;
+	my $batch = BATCH_SIZE;
 	while (@titles) {
 		if ($#titles < $batch) {
 			$batch = $#titles;
@@ -469,7 +477,7 @@ sub download_mw_mediafile {
 	my $download_url = shift;
 
 	my $response = $mediawiki->{ua}->get($download_url);
-	if ($response->code == 200) {
+	if ($response->code == HTTP_CODE_OK) {
 		return $response->decoded_content;
 	} else {
 		print {*STDERR} "Error downloading mediafile from :\n";
-- 
1.8.3.rc3.49.g4e74807
Previous: Célestin MatteNext: Célestin Matte
Message 27 of 33 in “git-remote-mediawiki: Follow perlcritic's recommandations”
  1. 00/31 git-remote-mediawiki: Follow perlcritic's recommandationsCélestin Matte, Jun 14, 2013
  2. 01/31 git-remote-mediawiki: Make a regexp clearerCélestin Matte, Jun 14, 2013
  3. 02/31 git-remote-mediawiki: Move "use warnings;" before any instructionCélestin Matte, Jun 14, 2013
  4. 03/31 git-remote-mediawiki: Replace :utf8 by :encoding(UTF-8)Célestin Matte, Jun 14, 2013
  5. 04/31 git-remote-mediawiki: Always end a subroutine with a returnCélestin Matte, Jun 14, 2013
  6. 05/31 git-remote-mediawiki: Move a variable declaration at the top of the codeCélestin Matte, Jun 14, 2013
  7. 06/31 git-remote-mediawiki: Change syntax of map callsCélestin Matte, Jun 14, 2013
  8. 07/31 git-remote-mediawiki: Rewrite unclear line of instructionsCélestin Matte, Jun 14, 2013
  9. 08/31 git-remote-mediawiki: Remove useless regexp modifier (m)Célestin Matte, Jun 14, 2013
  10. 09/31 git-remote-mediawiki: Change the behaviour of a splitCélestin Matte, Jun 14, 2013
  11. 10/31 git-remote-mediawiki: Change separator of some regexpsCélestin Matte, Jun 14, 2013
  12. 11/31 git-remote-mediawiki: Change style in a regexpCélestin Matte, Jun 14, 2013
  13. 12/31 git-remote-mediawiki: Change style in a regexpCélestin Matte, Jun 14, 2013
  14. 13/31 git-remote-mediawiki: Add newline in the end of die() error messagesCélestin Matte, Jun 14, 2013
  15. 14/31 git-remote-mediawiki: Change the name of a variableCélestin Matte, Jun 14, 2013
  16. 15/31 git-remote-mediawiki: Turn double-negated expressions into simple expressionsCélestin Matte, Jun 14, 2013
  17. 16/31 git-remote-mediawiki: Remove unused variable $entryCélestin Matte, Jun 14, 2013
  18. 17/31 git-remote-mediawiki: Rename a variable ($last) which has the name of a keywordCélestin Matte, Jun 14, 2013
  19. 18/31 git-remote-mediawiki: Assign a variable as undef and make proper indentationCélestin Matte, Jun 14, 2013
  20. 19/31 git-remote-mediawiki: Check return value of openCélestin Matte, Jun 14, 2013
  21. 20/31 git-remote-mediawiki: remove import of unused open2Célestin Matte, Jun 14, 2013
  22. 21/31 git-remote-mediawiki: Put long code into a subroutineCélestin Matte, Jun 14, 2013
  23. 22/31 git-remote-mediawiki: Modify strings for a better coding-styleCélestin Matte, Jun 14, 2013
  24. 23/31 git-remote-mediawiki: Brace file handles for print for more clarityCélestin Matte, Jun 14, 2013
  25. 24/31 git-remote-mediawiki: Replace "unless" statements with negated "if" statementsCélestin Matte, Jun 14, 2013
  26. 25/31 git-remote-mediawiki: Don't use quotes for empty stringsCélestin Matte, Jun 14, 2013
  27. 26/31 git-remote-mediawiki: Put non-trivial numeric values in constants.Célestin Matte, Jun 14, 2013
  28. 27/31 git-remote-mediawiki: Fix a typo ("mediwiki" instead of "mediawiki")Célestin Matte, Jun 14, 2013
  29. 28/31 git-remote-mediawiki: Clearly rewrite double dereferenceCélestin Matte, Jun 14, 2013
  30. 29/31 git-remote-mediawiki: Add a .perlcriticrc fileCélestin Matte, Jun 14, 2013
  31. 30/31 git-remote-mediawiki: add a perlcritic rule in MakefileCélestin Matte, Jun 14, 2013
  32. 31/31 git-remote-mediawiki: Make error message more preciseCélestin Matte, Jun 14, 2013
  33. Junio C HamanoJun 14, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.