From: nguyenki <nguyenki@ensibm.imag.fr>
To: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Cc: <git@vger.kernel.org>
Subject: Re: [PATCH/RFC] Export file attachements in git-remote-mediawiki
Date: Thu, 07 Jun 2012 00:25:47 +0200 [thread overview]
Message-ID: <24f8b089a3ca00153ca927d6a5e4090b@ensibm.imag.fr> (raw)
In-Reply-To: <vpq62b5g047.fsf@bauges.imag.fr>
On Tue, 05 Jun 2012 19:05:44 +0200, Matthieu Moy wrote:
> nguyenki <nguyenki@ensibm.imag.fr> writes:
>
>>>> @@ -642,8 +651,14 @@ sub mw_push_file {
>>>> my $old_sha1 = $diff_info_split[2];
>>>> my $page_created = ($old_sha1 eq NULL_SHA1);
>>>> my $page_deleted = ($new_sha1 eq NULL_SHA1);
>>>> + my $file_deleted = ($new_sha1 eq NULL_SHA1);
>>>
>>> This line looks suspiciously similar to the previous one. Do you
>>> need
>>> another variable for the same value?
>> Yes, it's true. I just want the code to be more visible. Because,
>> when
>> we delete a file attachment, it's not a page wiki.
>
> I still don't see a reason to have two variables for the same thing.
> If
> $page_deleted is not a good name, then rename the variable to
> something more general (e.g. $path_deleted ?)
>
>>>> + else {
>>>> + print STDERR "$complete_file_name is not supported on
>>>> this version of Mediawiki.\n"
>>>
>>> It's not a matter of version, it's a matter of configuration.
>> What do you think if i change it like:
>> else {
>> print STDERR "$complete_file_name is not a permitted file
>> type. Check your configuration for more information\n"
>
> That's better, but it doesn't tell the user which configuration to
> check (Git's one, or the wiki's one).
Thank for your advices, i changed the code from your suggestions, now
it look like:
@@ -36,6 +36,7 @@
use strict;
use MediaWiki::API;
use DateTime::Format::ISO8601;
+use encoding 'utf8';
# use encoding 'utf8' doesn't change STDERROR
# but we're going to output UTF-8 filenames to STDERR
@@ -275,7 +276,8 @@ sub run_git {
}
sub run_git_raw {
- open(my $g,"-|","git " . $_[0]);
+ no encoding 'utf8';
+ open(my $g, "-|:utf8", "git " . $_[0]);
my $r = do { local $/; <$g> };
close($g);
@@ -648,7 +650,6 @@ sub mw_push_file {
my $old_sha1 = $diff_info_split[2];
my $page_created = ($old_sha1 eq NULL_SHA1);
my $page_deleted = ($new_sha1 eq NULL_SHA1);
- my $file_deleted = ($new_sha1 eq NULL_SHA1);
$complete_file_name = mediawiki_clean_filename($complete_file_name);
my %hashFiles = get_file_extensions_maybe($complete_file_name);
@@ -700,28 +701,29 @@ sub mw_push_file {
print STDERR "Pushed file: $new_sha1 - $title\n";
} elsif (exists($hashFiles{$extension})) {
# Deleting and uploading a file require the priviledge of the user
- if ($file_deleted) {
+ if ($page_deleted) {
mw_connect_maybe();
my $res = $mediawiki->edit( {
- action => 'delete',
- title => $path,
- reason => $summary } )
+ action => 'delete',
+ title => $path,
+ reason => $summary } )
|| die $mediawiki-> {error}->{code} . ':' .
$mediawiki->{error}->{details};
} else {
my $content = run_git_raw("cat-file blob $new_sha1");
mw_connect_maybe();
- $mediawiki->{config}->{upload_url} =
"$url/index.php/Special:Upload";
+ $mediawiki->{config}->{upload_url} =
"$url/index.php/Special:Upload";
- $mediawiki->upload( {
+ $mediawiki->upload( {
title => $complete_file_name,
summary => $summary,
data => $content,
ignorewarnings=>1
- }, {
- skip_encoding => 1 # Helps with names with accentuated characters
- } ) || die $mediawiki-> {error}->{code} . ':' .
$mediawiki->{error}->{details};
- $newrevid = get_reviId_filepage();
+ }, {
+ skip_encoding => 1 # Helps with names with accentuated
characters
+ } ) || die $mediawiki-> {error}->{code} . ':' .
$mediawiki->{error}->{details};
+ my $last_file_page = $mediawiki->get_page({title =>$path});
+ $newrevid = $last_file_page->{revid};
print STDERR "Pushed file: $new_sha1 - $complete_file_name\n";
}
else {
@@ -864,29 +866,6 @@ sub mw_push_revision {
return 1;
}
-sub get_reviId_filepage() {
- mw_connect_maybe();
-
- my $max_rev_num_file = 0;
-
- my @list_file_pages = get_mw_media_pages();
-
- foreach my $file_page (@list_file_pages) {
- my $id = $file_page->{pageid};
-
- my $query = {
- action => 'query',
- prop => 'revisions',
- rvprop => 'ids',
- pageids => $id,
- };
-
- my $result = $mediawiki->api($query);
-
- my $lastrev = pop(@{$result->{query}->{pages}->{$id}->{revisions}});
- }
-}
-
next prev parent reply other threads:[~2012-06-06 22:25 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-04 20:49 [PATCH/RFC] Export file attachements in git-remote-mediawiki NGUYEN Kim Thuat
2012-06-04 21:34 ` Matthieu Moy
2012-06-05 17:00 ` nguyenki
2012-06-05 17:05 ` Matthieu Moy
2012-06-06 22:25 ` nguyenki [this message]
2012-06-05 17:11 ` nguyenki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=24f8b089a3ca00153ca927d6a5e4090b@ensibm.imag.fr \
--to=nguyenki@ensibm.imag.fr \
--cc=Matthieu.Moy@grenoble-inp.fr \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).