标签: mediawiki

将MediaWiki内容合并在一起

目前我有两个MediaWikis,一个比另一个略旧的版本.我想将两者的内容合并在一起,而不会消除重复的页面.到目前为止,我能想到的最好的选择是使用机器人(如pywikipedia)浏览一个wiki的所有页面,并尝试将它们插入另一个,重命名重复的页面.

这个解决方案似乎需要一段时间才能完成.有没有更愉快的方式来做到这一点,我只是没有意识到?我没有直接使用MediaWiki数据库,所以我不太习惯在不知道我在做什么的情况下弄乱它.

mysql merge wiki mediawiki pywikibot

10
推荐指数
1
解决办法
4016
查看次数

WebRequest连接到Wikipedia API

这可能是一个非常简单的问题,但我似乎无法格式化web webrequest /响应以从Wikipedia API获取数据.我已经在下面发布了我的代码,如果有人可以帮我看看我的问题.

    string pgTitle = txtPageTitle.Text;

    Uri address = new Uri("http://en.wikipedia.org/w/api.php");

    HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;

    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";

    string action = "query";
    string query = pgTitle;

    StringBuilder data = new StringBuilder();
    data.Append("action=" + HttpUtility.UrlEncode(action));
    data.Append("&query=" + HttpUtility.UrlEncode(query));

    byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());

    request.ContentLength = byteData.Length;

    using (Stream postStream = request.GetRequestStream())
    {
        postStream.Write(byteData, 0, byteData.Length);
    }

    using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
    {
        // Get the response stream.
        StreamReader reader = new …
Run Code Online (Sandbox Code Playgroud)

c# mediawiki wikipedia webrequest wikipedia-api

10
推荐指数
1
解决办法
1万
查看次数

将Redmine与外部Wiki一起使用?

我们的内联网上有一个运行Mediawiki的公司wiki已经使用了一段时间.我们刚刚安装了Redmine,正在按照我们喜欢的方式配置它.

我想知道是否有任何方法可以使用我们现有的wiki而不是Redmine附带的内置wiki.我们有很多非开发人员编写的文章和文档,不想丢失和/或重新导入另一个wiki(即redmine).redmine的Wiki部分不允许我输入外部wiki的url,因为它包含各种非法字符(主要是:和/)

编辑:作为临时工作,我刚刚将"外部"Wiki上的每个项目主页用作Red Mine中的Projects"Home Page",到目前为止,这是我能够弄清楚的最好的.您没有从各种问题获得Wiki访问权限,但是没有,但是我们其他Wiki的链接确实显示在每个项目的概述下.

顺便说一下,这两个都安装在同一个物理盒子上,一个Windows 2003 Server,其中Mediawiki是使用WAMP包安装的,Redmine几乎是手动安装的,而不是像Bitnami那样使用堆栈.

wiki mediawiki redmine

10
推荐指数
1
解决办法
1万
查看次数

如何通过python从mediawiki标记的文章中解析/提取数据

来源Mediawiki标记

现在我正在使用各种正则表达式将mediawiki标记中的数据"解析"为列表/词典,以便可以使用文章中的元素.

这不是最好的方法,因为必须进行的案例数量很大.

如何将文章的mediawiki标记解析为各种python对象,以便可以使用其中的数据?

示例是:

  • 将所有标题提取到字典中,并使用其部分对其进行哈希处理.
  • 抓住所有的interwiki链接,并将它们粘贴到一个列表中(我知道
    这可以通过API完成,但我宁愿只有一个API调用来
    减少带宽使用).
  • 提取所有图像名称并使用其部分对其进行哈希处理

各种正则表达式可以实现上述目标,但我发现我必须做出相当大的数字.

这是mediawiki非官方规范(我发现它们的官方规范没有用).

python api parsing mediawiki extraction

10
推荐指数
1
解决办法
5254
查看次数

在mediawiki中删除或禁用用户

如何在mediawiki中禁用或删除用户?我可以删除数据库中的记录,但我不确定这是否会影响维基中的任何其他内容.欢迎大家提出意见

谢谢Prady

mediawiki

10
推荐指数
2
解决办法
1万
查看次数

防止MediaWiki被垃圾邮件发送

我的MediaWiki网站目前受到垃圾邮件发送者攻击.我每天都会收到10个垃圾邮件页面.

我已经做了什么:

  1. 只有拥有已确认电子邮件的用户才能创建/编辑页面.
  2. ReCAPTCHA小部件.Captcha显示在动作上:
    1. 'edit' - 在每次尝试页面保存时触发
    2. 'create' - 在页面创建时触发
    3. 'addurl' - 在页面上触发保存,可以向页面添加一个或多个URL
    4. 'createaccount' - 在创建新帐户时触发
  3. 代理拦截器
  4. SpamBlacklist

我还能做些什么来阻止垃圾邮件?

mediawiki spam

10
推荐指数
1
解决办法
5850
查看次数

使用它们获取所有Wikipedia Infobox模板和所有页面

给定维基百科的维基百科页面:Stack Overflow,通常有信息框(大部分位于页面顶部的右侧).截屏示例:

维基百科上的Stackoverflow信息框

  1. DBPedia将所有这些属性列为RDF三元组.您可以在DBPedia上看到示例:Stack Overflow.在那里,您会看到dbpprop:wikiPageUsesTemplate具有dbpedia:Template:Infobox_website有趣价值的房产.我想知道哪些维基百科页面使用此模板.我该怎么做并列出所有使用Infobox_website模板的页面?最好使用SPARQL查询,但我对其他简单的解决方案持开放态度.

  2. 接下来是所有Infobox模板的列表.维基百科:类别信息框模板显示了所需维基百科类别的层次结构 - 看起来像我正在寻找的.但我希望所有这些都是机器可读的格式,在一个页面上.也许DBPedia也是正确的吗?在DBPedia:类别信息模板DBPedia:INFOBOX我发现很少的信息.但这些看起来很有希望.如何使用SPARQL查找所有信息框类型,以便我可以为每个信息重复执行第1步?

您可以使用它来测试SPARQL查询:http://dbpedia.org/snorql/

更新1

我似乎已经解决了问题1:SPARQL:列出所有使用Infobox_website的页面

更新2

此外,这似乎是问题2的查询:SPARQL:列出所有信息框

mediawiki wikipedia sparql dbpedia

10
推荐指数
2
解决办法
3083
查看次数

如何使MediaWiki网站多语言

我已经安装了MediaWiki网站.我认为默认的MediaWiki只支持在安装期间配置的一种语言.

MediaWiki有没有办法支持wikipedia.org这样的两种或更多语言?页面的可用语言应该像维基百科一样列在左侧,当用户单击某种语言时,可以看到所选语言的页面版本.

支持多语言的传统方式是什么?

multilingual wiki mediawiki

10
推荐指数
1
解决办法
7615
查看次数

Mediawiki链接页面内的特定地点,而不是一个部分

1.问题

如果我编码如下,那么我在页面中有一个特定的"部分"链接

[[#SectionTitle|displayed text]]
Run Code Online (Sandbox Code Playgroud)

但是,如果我想在页面中有一个链接到一个地方,我的意思是任何地方?

有时我可能想直接引用页面的一部分,而不是在部分的开头.

我尝试了什么

我试过这样的事

[[#Foo|displayed text]]
{{anchor|Foo}}
Run Code Online (Sandbox Code Playgroud)

这似乎要求我做一个页面模板:锚

所以我复制了维基百科的Template:Anchor页面.

但是Template:Anchor似乎再次要求制作一些新的页面,因为Template:Anchor只会说

{{#invoke:anchor|main}}
Run Code Online (Sandbox Code Playgroud)

所以我的尝试没有奏效.

mediawiki mediawiki-templates

10
推荐指数
1
解决办法
5998
查看次数

9
推荐指数
2
解决办法
1万
查看次数