forked from clockworksoul/mediawiki
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnamespace.go
More file actions
71 lines (65 loc) · 2.22 KB
/
Copy pathnamespace.go
File metadata and controls
71 lines (65 loc) · 2.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package mediawiki
type Namespace int64
const (
// Namespace all is a special value used to indicate "all namespaces"
// for functions like LinkshereClient.Namespace.
NamespaceAll Namespace = -1024
NamespaceMedia Namespace = -2
NamespaceSpecial Namespace = -1
NamespaceMain Namespace = 0
NamespaceTalk Namespace = 1
NamespaceUser Namespace = 2
NamespaceUserTalk Namespace = 3
NamespaceProject Namespace = 4
NamespaceProjectTalk Namespace = 5
NamespaceFile Namespace = 6
NamespaceFileTalk Namespace = 7
NamespaceMediaWiki Namespace = 8
NamespaceMediaWikiTalk Namespace = 9
NamespaceTemplate Namespace = 10
NamespaceTemplateTalk Namespace = 11
NamespaceHelp Namespace = 12
NamespaceHelpTalk Namespace = 13
NamespaceCategory Namespace = 14
NamespaceCategoryTalk Namespace = 15
)
var namespaceNames = map[Namespace]string{
NamespaceAll: "*",
NamespaceMedia: "Media",
NamespaceSpecial: "Special",
NamespaceMain: "Main",
NamespaceTalk: "Talk",
NamespaceUser: "User",
NamespaceUserTalk: "User_talk",
NamespaceProject: "Project",
NamespaceProjectTalk: "Project_talk",
NamespaceFile: "File",
NamespaceFileTalk: "File_talk",
NamespaceMediaWiki: "MediaWiki",
NamespaceMediaWikiTalk: "MediaWiki_talk",
NamespaceTemplate: "Template",
NamespaceTemplateTalk: "Template_talk",
NamespaceHelp: "Help",
NamespaceHelpTalk: "Help_talk",
NamespaceCategory: "Category",
NamespaceCategoryTalk: "Category_talk",
}
// NewNamespace is a convenience function that simplifies the definition of
// named namespaces. Using NewNamespace will add the code and name to the
// internal lookup table, so that future calls to String() will return the
// assigned name. Note that this could be used to (accidentally or otherwise)
// redefine the standard namespace names.
func NewNamespace(name string, code int) Namespace {
ns := Namespace(code)
namespaceNames[ns] = name
return ns
}
func (n Namespace) String() string {
if name, ok := namespaceNames[n]; ok {
return name
} else if n%2 == 0 {
return "Custom"
} else {
return "Custom_talk"
}
}