README.md
1# DokuWikiConnector
2[](https://github.com/PetersSharp/DokuWikiConnector/releases/latest)
3[](https://github.com/PetersSharp/stCoCServer/issues)
4[](https://github.com/PetersSharp/stCoCServer/blob/master/LICENSE)
5
6####.NET RPC-XML DokuWiki Connector API & Auth manager
7
8 this part of stCoCServer, see [stCoCServer](https://github.com/PetersSharp/stCoCServer)
9
10####Features:
11
12* API .NET library allows to XML-RPC connect to remote DokuWiki.
13* Support all DokuWiki API operations.
14* Local DokuWiki file credential authenticate managements.
15
16* DokuWikiConnector [source](https://github.com/PetersSharp/stCoCServer/tree/master/stCoCServer/stExtLib/stDokuWikiConnector-dll)
17* DokuWikiConnector [Test suite](https://github.com/PetersSharp/stCoCServer/tree/master/stCoCServer/stTest/TestDokuWikiConnector)
18* DokuWikiConnector [Method Documentation](https://github.com/PetersSharp/stCoCServer/tree/master/stCoCServer/stExtLib/stDokuWikiConnector-dll/Doc)
19* Plugins publish [dokuwiki.org](https://www.dokuwiki.org/plugins:stdokuwikiconnector?s[]=dokuwikiconnector)
20
21####Example use stDokuWiki.Connector:
22
23```csharp
24
25using stDokuWiki.Connector;
26using stDokuWiki.Data;
27
28 RpcXml xml = new RpcXml("http://you-dokuwiki-url.org/", "userquest", "userquest");
29 XMLMethodPageList dokuList = xml.DokuPageList("wiki:") as XMLMethodPageList;
30 foreach (var items in dokuList.Params.Param.Value.Array.Data.Value)
31 {
32 foreach (var item in items.Struct.Member)
33 {
34 Console.WriteLine(
35 item.Name +
36 ((string.IsNullOrWhiteSpace(item.Value.Int)) ? " " : " [" + item.Value.Int + "] ") +
37 ((string.IsNullOrWhiteSpace(item.Value.String)) ? "" : item.Value.String)
38 );
39 }
40 }
41
42```
43
44####Example use stDokuWiki.AuthManager:
45
46```csharp
47
48using stDokuWiki.AuthManager
49using stDokuWiki.Data;
50
51 DokuAuthManager dam;
52 try
53 {
54 dam = new DokuAuthManager("/path/to/dokuwiki/root/dir","mygroup");
55
56 List<DokuAuthUser> uadd = new List<DokuAuthUser>()
57 {
58 new DokuAuthUser() { Login = "userLogin1", Password = "pwd1234", Name = "Nikolas", Email = "Nikolas@nomail.com", Group = "personalGroup"},
59 new DokuAuthUser() { ... },
60 };
61 List<DokuAuthUser> udel = new List<DokuAuthUser>()
62 {
63 new DokuAuthUser() { Login = "userLogin2" },
64 new DokuAuthUser() { ... },
65 };
66
67 dam.UserAdd(uadd);
68 dam.UserDelete(udel);
69 dam.AuthSave();
70
71 DokuAuthUser dau = dam.UserGet("Nikolas");
72 if (dau != null)
73 {
74 Console.WriteLine(
75 dau.Name + " : " + dau.Email
76 );
77 }
78 }
79 catch (RpcXmlException e)
80 {
81 Console.WriteLine("[" + e.errcode + "] " +e.Message); return;
82 }
83 catch (Exception e)
84 {
85 Console.WriteLine(e.Message); return;
86 }
87
88```
89