aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/SuckIt
blob: 6247221846b4020762bfdbeaf201fe0935bbe1b3 (plain)
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/bin/bash

TIMEFORMAT="    took %lR using %P%% CPU"
time {
pushd /opt/merged

rm -fr Foswiki/*
cp -r /opt/merged_EMPTY/Foswiki .
rm -fr PmWiki/*
cp -r /opt/merged_EMPTY/PmWiki .
rm -fr unsorted
mkdir -p unsorted
rm -fr users
mkdir -p users

filter="
 -name _default -prune -o \
 -name _empty -prune -o \
 -name System -prune -o \
 -name Trash -prune -o \
 -name TWiki -prune -o \
"
URL="https://fos.wiki.devuan.org"
time find /opt/Foswiki/data  ${filter} \
-name "*.txt" -type f,l -printf "%P\n" | while read line
do
    base=`echo "${line}" | cut -d '/' -f 1`
    file=`echo "${line}" | cut -d '/' -f 2- | rev | cut -b 5- | rev`
    if [[ ! $file =~ (AdminGroup|AdminUser|AdminUserLeftBar|EditorGroup|GroupTemplate|GroupViewTemplate|NobodyGroup|PatternSkinUserViewTemplate|ProjectContributor|RegistrationAgent|SitePreferences|UnprocessedRegistrations|UnprocessedRegistrationsLog|UserHomepageHeader|UserList|UserListByDateJoined|UserListByLocation|UserList|UserListHeader|WebAtom|WebChanges|WebCreateNewTopic|WebHome|WebIndex|WebLeftBar|WebLeftBarExample|WebNotify|WebPreferences|WebRss|WebSearch|WebSearchAdvanced|WebTopicList|WikiGroups|WikiUsers)$ ]]; then
	time=`date --rfc-3339=seconds -ur /opt/Foswiki/data/${base}/${file}.txt | cut -d '+' -f 1`
	mkdir -p Foswiki/$base
	mkdir -p Foswiki/${base}/`dirname ${file}`
	echo -e "ogWiki=Foswiki\nogURL=${URL}\nogBase=${base}\nogFile=${file}\ntimestamp=${time}\n" > Foswiki/${base}/${file}.md.md 
	echo "downloading ${URL}/${base}/${file}?cover=print"
	# Doesn't help with redownloads, coz natch a dynamic site isn't cached.  But I can at least comment out the curl command during testing to save time.
	curl --silent --no-progress-meter ${URL}/${base}/${file}?cover=print -o Foswiki/${base}/${file}.HTM
	# Attempt to separate user profiles from user content.  Doesn't work when people turn their profiles into content.
	if [[ "${base}" ==  "Main" ]]; then
	    dest="unsorted"
	    mkdir -p `dirname users/${file}`
	    sed -i -E Foswiki/${base}/${file}.HTM -e "s%<a href=\"/System/UserForm\">UserForm</a>%%w users/${file}_fos.SED"
	    if [ -s users/${file}_fos.SED ]; then
		dest="users"
	    else
		rm -d `dirname users/${file}` >/dev/null 2>&1
	    fi
	    rm users/${file}_fos.SED
	    mkdir -p `dirname ${dest}/${file}`
	    touch   Foswiki/${base}/${file}.md
	    ln -sfr Foswiki/${base}/${file}.md ${dest}/${file}_fos.md
	    ln -sfr Foswiki/${base}/${file}.md.md ${dest}/${file}_fos.md.md
	    rm      Foswiki/${base}/${file}.md
	fi
    fi
done


filter="
 -not -name "*~" -a \
 -not -name ".flock" -a \
 -not -name ".htaccess" -a \
 -not -name ".lastmod" -a \
 -not -name ".pageindex" -a \
"
URL="https://wiki.devuan.org"
time find /opt/pmwiki/wiki.d  ${filter} \
-name "*.*" -type f,l -printf "%P\n" | while read line
do
    base=`echo "${line}" | cut -d '.' -f 1`
    if [[ "${base}" !=  "Site" ]]; then
	file=`echo "${line}" | cut -d '.' -f 2`
	time=`date --rfc-3339=seconds -ur /opt/pmwiki/wiki.d/${base}.${file} | cut -d '+' -f 1`
	mkdir -p PmWiki/$base
	echo -e "ogWiki=PmWiki\nogURL=${URL}\nogBase=${base}\nogFile=${file}\ntimestamp=${time}\n" > PmWiki/${base}/${file}.md.md
#	echo "downloading ${URL}/?n=${base}.${file}?action=markdown"
#	curl --no-progress-meter ${URL}/?n=${base}.${file}?action=markdown -o PmWiki/${base}/${file}.MARKDOWN
	echo "downloading ${URL}/?n=${base}.${file}?action=print"
	curl --no-progress-meter ${URL}/?n=${base}.${file}?action=print -o PmWiki/${base}/${file}.HTM
	# Seems there's no way to tell user profiles apart from user content.  Unless I can find a list of users somewhere.  Don't think there is one.
	if [[ "${base}" ==  "Profiles" ]]; then
	    touch   PmWiki/${base}/${file}.md
	    ln -sfr PmWiki/${base}/${file}.md unsorted/${file}_pm.md
	    ln -sfr PmWiki/${base}/${file}.md unsorted/${file}_pm.md.md
	    rm      PmWiki/${base}/${file}.md
	fi

# TODO - groups are PmWiki/Onefang and PmWiki/Tiki

#    	pandoc -f markdown -t commonmark_x --self-contained PmWiki//${base}/${file}.MD >PmWiki/${base}/${file}.md
#    	pandoc -f html -t commonmark_x --self-contained PmWiki//${base}/${file}.HTM >PmWiki/${base}/${file}.md
    fi
done


time notYetAnotherWiki.lua

popd
}