punkweb-bb 0.4.0__py3-none-any.whl → 0.4.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- punkweb_bb/__pycache__/bbcode.cpython-311.pyc +0 -0
- punkweb_bb/__pycache__/utils.cpython-311.pyc +0 -0
- punkweb_bb/__pycache__/widgets.cpython-311.pyc +0 -0
- punkweb_bb/bbcode.py +192 -121
- punkweb_bb/static/punkweb_bb/editor/bbcode-editor-content.css +34 -17
- punkweb_bb/templatetags/__pycache__/render.cpython-311.pyc +0 -0
- punkweb_bb/templatetags/render.py +12 -2
- punkweb_bb/utils.py +2 -0
- {punkweb_bb-0.4.0.dist-info → punkweb_bb-0.4.2.dist-info}/METADATA +7 -8
- {punkweb_bb-0.4.0.dist-info → punkweb_bb-0.4.2.dist-info}/RECORD +13 -13
- {punkweb_bb-0.4.0.dist-info → punkweb_bb-0.4.2.dist-info}/LICENSE +0 -0
- {punkweb_bb-0.4.0.dist-info → punkweb_bb-0.4.2.dist-info}/WHEEL +0 -0
- {punkweb_bb-0.4.0.dist-info → punkweb_bb-0.4.2.dist-info}/top_level.txt +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
punkweb_bb/bbcode.py
CHANGED
|
@@ -1,71 +1,127 @@
|
|
|
1
1
|
import bbcode
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
def
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
def add_font_tag(parser):
|
|
5
|
+
def _render_font(name, value, options, parent, context):
|
|
6
|
+
if "font" in options:
|
|
7
|
+
font = options["font"].strip()
|
|
8
|
+
return f'<span style="font-family:{font};">{value}</span>'
|
|
9
|
+
return value
|
|
10
|
+
|
|
11
|
+
parser.add_formatter("font", _render_font)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def add_size_tag(parser):
|
|
15
|
+
def _render_size(name, value, options, parent, context):
|
|
16
|
+
if "size" in options:
|
|
17
|
+
size = options["size"].strip()
|
|
18
|
+
return f'<font size="{size}">{value}</font>'
|
|
19
|
+
return value
|
|
20
|
+
|
|
21
|
+
parser.add_formatter("size", _render_size)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def add_color_tag(parser):
|
|
25
|
+
def _render_color(name, value, options, parent, context):
|
|
26
|
+
if "color" in options:
|
|
27
|
+
color = options["color"].strip()
|
|
28
|
+
return f'<span style="color: {color}">{value}</span>'
|
|
29
|
+
return value
|
|
30
|
+
|
|
31
|
+
parser.add_formatter("color", _render_color)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def add_shadow_tag(parser):
|
|
35
|
+
def _render_shadow(name, value, options, parent, context):
|
|
36
|
+
if "shadow" in options:
|
|
37
|
+
shadow = options["shadow"].strip()
|
|
38
|
+
return f'<span id="bbcode-shadow" style="text-shadow: 0px 0px 1em {shadow}">{value}</span>'
|
|
39
|
+
return value
|
|
40
|
+
|
|
41
|
+
parser.add_formatter("shadow", _render_shadow)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def add_url_tag(parser):
|
|
45
|
+
def _render_url(name, value, options, parent, context):
|
|
46
|
+
if "url" in options:
|
|
47
|
+
url = options["url"]
|
|
48
|
+
return f'<a href="{url}">{value}</a>'
|
|
49
|
+
return f'<a href="{value}">{value}</a>'
|
|
50
|
+
|
|
51
|
+
parser.add_formatter(
|
|
52
|
+
"url", _render_url, replace_links=False, replace_cosmetic=False
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def add_quote_tag(parser):
|
|
57
|
+
def _render_quote(name, value, options, parent, context):
|
|
58
|
+
if "quote" in options:
|
|
59
|
+
return f'<blockquote><cite>{options["quote"]} said: </cite>{value}</blockquote>'
|
|
60
|
+
return f"<blockquote>{value}</blockquote>"
|
|
61
|
+
|
|
62
|
+
parser.add_formatter(
|
|
63
|
+
"quote", _render_quote, strip=True, swallow_trailing_newline=True
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def add_code_tag(parser):
|
|
68
|
+
def _render_code(name, value, options, parent, context):
|
|
69
|
+
if "code" in options:
|
|
70
|
+
language = options["code"].strip()
|
|
71
|
+
return f'<pre><code class="language-{language}">{value}</code></pre>'
|
|
72
|
+
return f"<pre><code>{value}</code></pre>"
|
|
73
|
+
|
|
74
|
+
parser.add_formatter(
|
|
75
|
+
"code",
|
|
76
|
+
_render_code,
|
|
77
|
+
render_embedded=False,
|
|
78
|
+
transform_newlines=False,
|
|
79
|
+
replace_links=False,
|
|
80
|
+
replace_cosmetic=False,
|
|
81
|
+
strip=True,
|
|
82
|
+
swallow_trailing_newline=True,
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def add_img_tag(parser):
|
|
87
|
+
def _render_img(name, value, options, parent, context):
|
|
88
|
+
if "width" in options:
|
|
89
|
+
width = options["width"]
|
|
90
|
+
if "height" in options:
|
|
91
|
+
height = options["height"]
|
|
92
|
+
|
|
93
|
+
if "width" in options and "height" in options:
|
|
94
|
+
return (
|
|
95
|
+
f'<img src="{value}" alt="{value}" width="{width}" height="{height}" />'
|
|
96
|
+
)
|
|
97
|
+
elif "width" in options:
|
|
98
|
+
return f'<img src="{value}" alt="{value}" width="{width}" />'
|
|
99
|
+
elif "height" in options:
|
|
100
|
+
return f'<img src="{value}" alt="{value}" height="{height}" />'
|
|
101
|
+
|
|
102
|
+
return f'<img src="{value}" alt="{value}" />'
|
|
103
|
+
|
|
104
|
+
parser.add_formatter(
|
|
105
|
+
"img",
|
|
106
|
+
_render_img,
|
|
107
|
+
render_embedded=False,
|
|
108
|
+
replace_links=False,
|
|
109
|
+
replace_cosmetic=False,
|
|
110
|
+
)
|
|
9
111
|
|
|
10
112
|
|
|
11
|
-
def
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
113
|
+
def add_spoiler_tag(parser):
|
|
114
|
+
def _render_spoiler(name, value, options, parent, context):
|
|
115
|
+
if "spoiler" in options:
|
|
116
|
+
summary = options["spoiler"]
|
|
117
|
+
return f"<details><summary>{summary}</summary>{value}</details>"
|
|
16
118
|
|
|
119
|
+
parser.add_formatter(
|
|
120
|
+
"spoiler", _render_spoiler, strip=True, swallow_trailing_newline=True
|
|
121
|
+
)
|
|
17
122
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
font = options["font"].strip()
|
|
21
|
-
return f'<span style="font-family:{font};">{value}</span>'
|
|
22
|
-
return value
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
def render_quote(name, value, options, parent, context):
|
|
26
|
-
if "quote" in options:
|
|
27
|
-
return f'<blockquote><cite>{options["quote"]} said: </cite>{value}</blockquote>'
|
|
28
|
-
return f"<blockquote>{value}</blockquote>"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
def render_code(name, value, options, parent, context):
|
|
32
|
-
if "code" in options:
|
|
33
|
-
language = options["code"].strip()
|
|
34
|
-
return f'<pre><code class="language-{language}">{value}</code></pre>'
|
|
35
|
-
return f"<pre><code>{value}</code></pre>"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
def render_img(name, value, options, parent, context):
|
|
39
|
-
if "width" in options:
|
|
40
|
-
width = options["width"]
|
|
41
|
-
if "height" in options:
|
|
42
|
-
height = options["height"]
|
|
43
|
-
|
|
44
|
-
if "width" in options and "height" in options:
|
|
45
|
-
return f'<img src="{value}" alt="{value}" width="{width}" height="{height}" />'
|
|
46
|
-
elif "width" in options:
|
|
47
|
-
return f'<img src="{value}" alt="{value}" width="{width}" />'
|
|
48
|
-
elif "height" in options:
|
|
49
|
-
return f'<img src="{value}" alt="{value}" height="{height}" />'
|
|
50
|
-
|
|
51
|
-
return f'<img src="{value}" alt="{value}" />'
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
def render_url(name, value, options, parent, context):
|
|
55
|
-
if "url" in options:
|
|
56
|
-
url = options["url"]
|
|
57
|
-
return f'<a href="{url}">{value}</a>'
|
|
58
|
-
return f'<a href="{value}">{value}</a>'
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
def render_size(name, value, options, parent, context):
|
|
62
|
-
if "size" in options:
|
|
63
|
-
size = options["size"].strip()
|
|
64
|
-
return f'<font size="{size}">{value}</font>'
|
|
65
|
-
return value
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
def init_default_tags(parser):
|
|
123
|
+
|
|
124
|
+
def init_text_tags(parser):
|
|
69
125
|
parser.add_simple_formatter("b", "<strong>%(value)s</strong>")
|
|
70
126
|
parser.add_simple_formatter("i", "<em>%(value)s</em>")
|
|
71
127
|
parser.add_simple_formatter("u", "<u>%(value)s</u>")
|
|
@@ -74,82 +130,97 @@ def init_default_tags(parser):
|
|
|
74
130
|
parser.add_simple_formatter("sup", "<sup>%(value)s</sup>")
|
|
75
131
|
parser.add_simple_formatter("escape", "%(value)s", render_embedded=False)
|
|
76
132
|
|
|
77
|
-
parser
|
|
78
|
-
parser
|
|
79
|
-
parser
|
|
80
|
-
parser
|
|
133
|
+
add_color_tag(parser)
|
|
134
|
+
add_shadow_tag(parser)
|
|
135
|
+
add_font_tag(parser)
|
|
136
|
+
add_url_tag(parser)
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
def init_alignment_tags(parser):
|
|
140
|
+
parser.add_simple_formatter(
|
|
141
|
+
"center", '<div style="text-align: center">%(value)s</div>'
|
|
142
|
+
)
|
|
143
|
+
parser.add_simple_formatter("left", '<div style="text-align: left">%(value)s</div>')
|
|
144
|
+
parser.add_simple_formatter(
|
|
145
|
+
"right", '<div style="text-align: right">%(value)s</div>'
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
def init_list_tags(parser):
|
|
150
|
+
parser.add_simple_formatter(
|
|
151
|
+
"ol",
|
|
152
|
+
"<ol>%(value)s</ol>",
|
|
153
|
+
transform_newlines=False,
|
|
154
|
+
strip=True,
|
|
155
|
+
swallow_trailing_newline=True,
|
|
156
|
+
)
|
|
157
|
+
parser.add_simple_formatter(
|
|
158
|
+
"ul",
|
|
159
|
+
"<ul>%(value)s</ul>",
|
|
160
|
+
transform_newlines=False,
|
|
161
|
+
strip=True,
|
|
162
|
+
swallow_trailing_newline=True,
|
|
163
|
+
)
|
|
164
|
+
parser.add_simple_formatter(
|
|
165
|
+
"li",
|
|
166
|
+
"<li>%(value)s</li>",
|
|
167
|
+
newline_closes=True,
|
|
168
|
+
transform_newlines=False,
|
|
169
|
+
same_tag_closes=True,
|
|
170
|
+
strip=True,
|
|
171
|
+
)
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
def init_default_tags(parser):
|
|
175
|
+
init_text_tags(parser)
|
|
176
|
+
init_alignment_tags(parser)
|
|
177
|
+
init_list_tags(parser)
|
|
178
|
+
|
|
179
|
+
parser.add_simple_formatter("hr", "<hr />", standalone=True)
|
|
180
|
+
add_size_tag(parser)
|
|
181
|
+
add_img_tag(parser)
|
|
182
|
+
add_quote_tag(parser)
|
|
183
|
+
add_code_tag(parser)
|
|
184
|
+
add_spoiler_tag(parser)
|
|
81
185
|
|
|
82
186
|
|
|
83
187
|
_parser = None
|
|
188
|
+
_mix_parser = None
|
|
84
189
|
_shoutbox_parser = None
|
|
85
190
|
|
|
86
191
|
|
|
87
192
|
def get_parser():
|
|
88
193
|
global _parser
|
|
89
194
|
if _parser is None:
|
|
90
|
-
_parser = bbcode.Parser(
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
_parser.add_simple_formatter("hr", "<hr />", standalone=True)
|
|
94
|
-
_parser.add_simple_formatter(
|
|
95
|
-
"center", '<div style="text-align: center">%(value)s</div>'
|
|
96
|
-
)
|
|
97
|
-
_parser.add_simple_formatter(
|
|
98
|
-
"left", '<div style="text-align: left">%(value)s</div>'
|
|
99
|
-
)
|
|
100
|
-
_parser.add_simple_formatter(
|
|
101
|
-
"right", '<div style="text-align: right">%(value)s</div>'
|
|
102
|
-
)
|
|
103
|
-
_parser.add_simple_formatter(
|
|
104
|
-
"ol",
|
|
105
|
-
"<ol>%(value)s</ol>",
|
|
106
|
-
transform_newlines=False,
|
|
107
|
-
strip=True,
|
|
108
|
-
swallow_trailing_newline=True,
|
|
109
|
-
)
|
|
110
|
-
_parser.add_simple_formatter(
|
|
111
|
-
"ul",
|
|
112
|
-
"<ul>%(value)s</ul>",
|
|
113
|
-
transform_newlines=False,
|
|
114
|
-
strip=True,
|
|
115
|
-
swallow_trailing_newline=True,
|
|
116
|
-
)
|
|
117
|
-
_parser.add_simple_formatter(
|
|
118
|
-
"li",
|
|
119
|
-
"<li>%(value)s</li>",
|
|
120
|
-
newline_closes=True,
|
|
121
|
-
transform_newlines=False,
|
|
122
|
-
same_tag_closes=True,
|
|
123
|
-
strip=True,
|
|
124
|
-
)
|
|
125
|
-
|
|
126
|
-
_parser.add_formatter("size", render_size)
|
|
127
|
-
_parser.add_formatter(
|
|
128
|
-
"img",
|
|
129
|
-
render_img,
|
|
130
|
-
render_embedded=False,
|
|
131
|
-
replace_links=False,
|
|
132
|
-
replace_cosmetic=False,
|
|
133
|
-
)
|
|
134
|
-
_parser.add_formatter(
|
|
135
|
-
"quote", render_quote, strip=True, swallow_trailing_newline=True
|
|
136
|
-
)
|
|
137
|
-
_parser.add_formatter(
|
|
138
|
-
"code",
|
|
139
|
-
render_code,
|
|
140
|
-
render_embedded=False,
|
|
141
|
-
transform_newlines=False,
|
|
195
|
+
_parser = bbcode.Parser(
|
|
196
|
+
install_defaults=False,
|
|
142
197
|
replace_links=False,
|
|
143
198
|
replace_cosmetic=False,
|
|
144
|
-
strip=True,
|
|
145
|
-
swallow_trailing_newline=True,
|
|
146
199
|
)
|
|
200
|
+
init_default_tags(_parser)
|
|
147
201
|
return _parser
|
|
148
202
|
|
|
149
203
|
|
|
150
204
|
def get_shoutbox_parser():
|
|
151
205
|
global _shoutbox_parser
|
|
152
206
|
if _shoutbox_parser is None:
|
|
153
|
-
_shoutbox_parser = bbcode.Parser(
|
|
154
|
-
|
|
207
|
+
_shoutbox_parser = bbcode.Parser(
|
|
208
|
+
install_defaults=False, replace_links=False, replace_cosmetic=False
|
|
209
|
+
)
|
|
210
|
+
init_text_tags(_shoutbox_parser)
|
|
155
211
|
return _shoutbox_parser
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
def get_mix_parser():
|
|
215
|
+
global _mix_parser
|
|
216
|
+
if _mix_parser is None:
|
|
217
|
+
_mix_parser = bbcode.Parser(
|
|
218
|
+
install_defaults=False,
|
|
219
|
+
newline="\n",
|
|
220
|
+
replace_links=False,
|
|
221
|
+
replace_cosmetic=False,
|
|
222
|
+
escape_html=False,
|
|
223
|
+
)
|
|
224
|
+
init_default_tags(_mix_parser)
|
|
225
|
+
|
|
226
|
+
return _mix_parser
|
|
@@ -1,32 +1,29 @@
|
|
|
1
1
|
/*! SCEditor | (C) 2011-2013, Sam Clarke | sceditor.com/license */
|
|
2
2
|
html,
|
|
3
|
-
body
|
|
3
|
+
body,
|
|
4
|
+
p,
|
|
5
|
+
code:before,
|
|
6
|
+
table {
|
|
4
7
|
color: #212529;
|
|
5
8
|
font-family: Arial, Helvetica sans-serif;
|
|
6
9
|
font-size: 16px;
|
|
7
10
|
font-weight: 400;
|
|
8
11
|
line-height: 1.5;
|
|
9
|
-
overflow: visible;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
html {
|
|
13
|
-
height: 100%;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
* {
|
|
17
|
-
box-sizing: border-box;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
body {
|
|
21
12
|
margin: 0;
|
|
13
|
+
overflow: visible;
|
|
22
14
|
padding: 0;
|
|
23
15
|
}
|
|
24
16
|
|
|
17
|
+
*,
|
|
25
18
|
*:before,
|
|
26
19
|
*:after {
|
|
27
20
|
box-sizing: border-box;
|
|
28
21
|
}
|
|
29
22
|
|
|
23
|
+
html {
|
|
24
|
+
height: 100%;
|
|
25
|
+
}
|
|
26
|
+
|
|
30
27
|
.ios {
|
|
31
28
|
/* Needed for iOS scrolling bug fix */
|
|
32
29
|
overflow: auto;
|
|
@@ -50,10 +47,14 @@ body.placeholder::before {
|
|
|
50
47
|
font-style: italic;
|
|
51
48
|
}
|
|
52
49
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
border
|
|
56
|
-
|
|
50
|
+
table,
|
|
51
|
+
td {
|
|
52
|
+
border: 1px dotted #000;
|
|
53
|
+
empty-cells: show;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
table td {
|
|
57
|
+
min-width: 5px;
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
a {
|
|
@@ -84,6 +85,22 @@ blockquote cite {
|
|
|
84
85
|
font-size: 1rem;
|
|
85
86
|
}
|
|
86
87
|
|
|
88
|
+
hr {
|
|
89
|
+
border: none;
|
|
90
|
+
border-top: 1px solid #ced4da;
|
|
91
|
+
margin: 1rem 0;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
h1,
|
|
95
|
+
h2,
|
|
96
|
+
h3,
|
|
97
|
+
h4,
|
|
98
|
+
h5,
|
|
99
|
+
h6 {
|
|
100
|
+
padding: 0;
|
|
101
|
+
margin: 0;
|
|
102
|
+
}
|
|
103
|
+
|
|
87
104
|
/* Prevent empty paragraphs from collapsing */
|
|
88
105
|
div,
|
|
89
106
|
p {
|
|
Binary file
|
|
@@ -5,7 +5,7 @@ from django import template
|
|
|
5
5
|
from django.template.defaultfilters import stringfilter
|
|
6
6
|
from django.utils.safestring import mark_safe
|
|
7
7
|
|
|
8
|
-
from punkweb_bb.bbcode import get_parser, get_shoutbox_parser
|
|
8
|
+
from punkweb_bb.bbcode import get_mix_parser, get_parser, get_shoutbox_parser
|
|
9
9
|
from punkweb_bb.settings import PARSER
|
|
10
10
|
|
|
11
11
|
register = template.Library()
|
|
@@ -19,9 +19,15 @@ def render(value):
|
|
|
19
19
|
rendered = parser.format(value)
|
|
20
20
|
return mark_safe(rendered)
|
|
21
21
|
elif PARSER == "markdown":
|
|
22
|
-
escaped = html.escape(value)
|
|
22
|
+
escaped = html.escape(value, quote=False)
|
|
23
23
|
rendered = md.markdown(escaped, extensions=["markdown.extensions.fenced_code"])
|
|
24
24
|
return mark_safe(rendered)
|
|
25
|
+
elif PARSER == "mix":
|
|
26
|
+
parser = get_mix_parser()
|
|
27
|
+
escaped = html.escape(value, quote=False)
|
|
28
|
+
rendered = parser.format(escaped)
|
|
29
|
+
rendered = md.markdown(rendered, extensions=["markdown.extensions.fenced_code"])
|
|
30
|
+
return mark_safe(rendered)
|
|
25
31
|
return value
|
|
26
32
|
|
|
27
33
|
|
|
@@ -32,4 +38,8 @@ def render_shout(value):
|
|
|
32
38
|
parser = get_shoutbox_parser()
|
|
33
39
|
rendered = parser.format(value)
|
|
34
40
|
return mark_safe(rendered)
|
|
41
|
+
if PARSER == "mix":
|
|
42
|
+
parser = get_shoutbox_parser()
|
|
43
|
+
rendered = parser.format(value)
|
|
44
|
+
return mark_safe(rendered)
|
|
35
45
|
return value
|
punkweb_bb/utils.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: punkweb-bb
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.2
|
|
4
4
|
Summary: Django application that provides a simple and modern forum board software for your Django website.
|
|
5
5
|
Home-page: https://github.com/Punkweb/PunkwebBB
|
|
6
6
|
Author: Punkweb
|
|
@@ -143,16 +143,17 @@ Creating test database for alias 'default'...
|
|
|
143
143
|
System check identified no issues (0 silenced).
|
|
144
144
|
...........................................................
|
|
145
145
|
----------------------------------------------------------------------
|
|
146
|
-
Ran 59 tests in
|
|
146
|
+
Ran 59 tests in 8.994s
|
|
147
147
|
|
|
148
148
|
OK
|
|
149
149
|
Destroying test database for alias 'default'...
|
|
150
150
|
Name Stmts Miss Cover
|
|
151
151
|
------------------------------------------------------------------
|
|
152
152
|
punkweb_bb/__init__.py 0 0 100%
|
|
153
|
-
punkweb_bb/admin.py
|
|
153
|
+
punkweb_bb/admin.py 42 0 100%
|
|
154
154
|
punkweb_bb/admin_forms.py 34 0 100%
|
|
155
155
|
punkweb_bb/apps.py 6 0 100%
|
|
156
|
+
punkweb_bb/bbcode.py 82 68 17%
|
|
156
157
|
punkweb_bb/context_processors.py 3 0 100%
|
|
157
158
|
punkweb_bb/forms.py 47 0 100%
|
|
158
159
|
punkweb_bb/guests.py 13 0 100%
|
|
@@ -160,7 +161,6 @@ punkweb_bb/middleware.py 14 0 100%
|
|
|
160
161
|
punkweb_bb/mixins.py 11 0 100%
|
|
161
162
|
punkweb_bb/models.py 153 1 99%
|
|
162
163
|
punkweb_bb/pagination.py 11 4 64%
|
|
163
|
-
punkweb_bb/parsers.py 50 36 28%
|
|
164
164
|
punkweb_bb/response.py 3 0 100%
|
|
165
165
|
punkweb_bb/settings.py 11 0 100%
|
|
166
166
|
punkweb_bb/signals.py 9 0 100%
|
|
@@ -169,15 +169,14 @@ punkweb_bb/templatetags/can_delete.py 5 0 100%
|
|
|
169
169
|
punkweb_bb/templatetags/can_edit.py 5 0 100%
|
|
170
170
|
punkweb_bb/templatetags/can_post.py 5 0 100%
|
|
171
171
|
punkweb_bb/templatetags/humanize_int.py 9 5 44%
|
|
172
|
-
punkweb_bb/templatetags/render.py
|
|
173
|
-
punkweb_bb/templatetags/shoutbox_render.py 18 2 89%
|
|
172
|
+
punkweb_bb/templatetags/render.py 28 7 75%
|
|
174
173
|
punkweb_bb/templatetags/styled_group_name.py 7 1 86%
|
|
175
174
|
punkweb_bb/templatetags/styled_username.py 6 0 100%
|
|
176
175
|
punkweb_bb/tests.py 418 0 100%
|
|
177
176
|
punkweb_bb/urls.py 4 0 100%
|
|
178
|
-
punkweb_bb/utils.py 42
|
|
177
|
+
punkweb_bb/utils.py 42 23 45%
|
|
179
178
|
punkweb_bb/views.py 304 118 61%
|
|
180
179
|
punkweb_bb/widgets.py 16 0 100%
|
|
181
180
|
------------------------------------------------------------------
|
|
182
|
-
TOTAL
|
|
181
|
+
TOTAL 1288 227 82%
|
|
183
182
|
```
|
|
@@ -2,7 +2,7 @@ punkweb_bb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
2
2
|
punkweb_bb/admin.py,sha256=W8f91MenKxds6RUOxL0OkXuoHTGL76zZ-nqZEATPONU,2640
|
|
3
3
|
punkweb_bb/admin_forms.py,sha256=nvHKaqJx6rJv5G8yzaDcWYU9gsytg9gMJkz79v8bdUc,1414
|
|
4
4
|
punkweb_bb/apps.py,sha256=GCDLy9B9vumeCsaauQ7LN4FOqE02mXWXECIz8G6KZCQ,207
|
|
5
|
-
punkweb_bb/bbcode.py,sha256=
|
|
5
|
+
punkweb_bb/bbcode.py,sha256=r0PDZF6L6VoKOm1r-JA9wgi1iKWrjJ9QPcvVZuYOrs0,6499
|
|
6
6
|
punkweb_bb/context_processors.py,sha256=BEOGvWVukvxJUxWZBIc32ioB-mGqImSEBuhhZjqI2G0,146
|
|
7
7
|
punkweb_bb/forms.py,sha256=jFW7VDV2tAuHymt_3F20TyWXNq_3ZJ-_KQdeZOk2Sbo,3130
|
|
8
8
|
punkweb_bb/guests.py,sha256=Nvn4ZVJvQSQs_f-GeSwNn79Qp8ap_CAoXpYfRTqSbxg,467
|
|
@@ -15,14 +15,14 @@ punkweb_bb/settings.py,sha256=7ySSAgNiefcdNWtGBPhMh2V8FVnrY7cpdeVIZ5Om7NM,605
|
|
|
15
15
|
punkweb_bb/signals.py,sha256=bVdfg942Mwq-fYDZ1Z52Q0V2BCk1lgzGz8JVZFPnzJ8,365
|
|
16
16
|
punkweb_bb/tests.py,sha256=puvvh789RvK5UxPzol7dFmQPU1dfGPjzjuQ5vka6oT0,26298
|
|
17
17
|
punkweb_bb/urls.py,sha256=AkTP3VTb6mr0eQU2Wr7C4ZEKvrRDj9mRUFveWOgdE28,2673
|
|
18
|
-
punkweb_bb/utils.py,sha256=
|
|
18
|
+
punkweb_bb/utils.py,sha256=dtSBMds4xXg_jWxumUfKBXcz_uocDJDtSMnvoBDW_kM,1632
|
|
19
19
|
punkweb_bb/views.py,sha256=hVys3rHUswD9NS4hL-RN3gIo2SnqY52NKyEoiC2lhOw,18010
|
|
20
20
|
punkweb_bb/widgets.py,sha256=uIkXnIvYLNncWWyQV069Y2YgeB1m_YG8r5y2ztkdrO8,1502
|
|
21
21
|
punkweb_bb/__pycache__/__init__.cpython-311.pyc,sha256=3PyxCxoznfadaGt0a7re4j0Ky9z9hblufpcwPB85kK8,161
|
|
22
22
|
punkweb_bb/__pycache__/admin.cpython-311.pyc,sha256=dNdyvl0j28dlAhcN7nE1KezjP4786itp9rQ3Jq_mooc,3810
|
|
23
23
|
punkweb_bb/__pycache__/admin_forms.cpython-311.pyc,sha256=ggTP4ngqAlyR1z91zjxh2s5AwzcmRV1EtxTuttZ5aq4,3605
|
|
24
24
|
punkweb_bb/__pycache__/apps.cpython-311.pyc,sha256=lw328DOwOp1F8FWTFYb3qV1EoBNgRr_Tc4J8DXfIl-I,730
|
|
25
|
-
punkweb_bb/__pycache__/bbcode.cpython-311.pyc,sha256=
|
|
25
|
+
punkweb_bb/__pycache__/bbcode.cpython-311.pyc,sha256=32J8u59U0gHz4ACDuBzVvKyYinh2F-Zmgr8qS-gdmFY,9624
|
|
26
26
|
punkweb_bb/__pycache__/bbcode_tags.cpython-311.pyc,sha256=QI4BJt5plqLMiAvlVAxibuNONi69PJFQpotpS50olro,8534
|
|
27
27
|
punkweb_bb/__pycache__/context_processors.cpython-311.pyc,sha256=P7rEsodXonYexbS5vUaUKVJ9tIx1pOVk6NQWVvWNvS8,392
|
|
28
28
|
punkweb_bb/__pycache__/forms.cpython-311.pyc,sha256=GYifujT3WNioRq9FBFyhNpVpOOYIUJC2u9o4CFidfk8,6735
|
|
@@ -39,9 +39,9 @@ punkweb_bb/__pycache__/sitemap.cpython-311.pyc,sha256=GFjuUD20_ikJWj7IFT1Cn7Od-r
|
|
|
39
39
|
punkweb_bb/__pycache__/tags.cpython-311.pyc,sha256=nr_Va9Nz8H6kUjxx8mDJi3D4gGo31K92BZKRXHgBFuw,1052
|
|
40
40
|
punkweb_bb/__pycache__/tests.cpython-311.pyc,sha256=5PSZQVuRWikAHkjKPxn69XWLSHO5PXxzmzSWqG0dOPQ,51701
|
|
41
41
|
punkweb_bb/__pycache__/urls.cpython-311.pyc,sha256=enGd9gcLCxN77wcy6a7v_WCTut0OWwURscNptONTzPk,3686
|
|
42
|
-
punkweb_bb/__pycache__/utils.cpython-311.pyc,sha256=
|
|
42
|
+
punkweb_bb/__pycache__/utils.cpython-311.pyc,sha256=KlAzhCzyXMiVWZplwzIo4VR9O7KETgR-yjobFhrAecU,2899
|
|
43
43
|
punkweb_bb/__pycache__/views.cpython-311.pyc,sha256=aA95XS49Ab4c8R6ia_JUqELT03QNsRh-ftkMMLpQVv8,26263
|
|
44
|
-
punkweb_bb/__pycache__/widgets.cpython-311.pyc,sha256=
|
|
44
|
+
punkweb_bb/__pycache__/widgets.cpython-311.pyc,sha256=GRDHKCHqMnsUQJez-enP34Dayw0AR0TUPYPrij6QhmM,2640
|
|
45
45
|
punkweb_bb/migrations/0001_initial.py,sha256=3RGsylygBcWx1kIPhSzOb9v_2yvowsxKfxuSinKKuS0,8950
|
|
46
46
|
punkweb_bb/migrations/0002_thread_view_count.py,sha256=JJZT53Mp8Ofht3oIi67s-0wzCdpYyu8wOeCi_B8q8Yo,388
|
|
47
47
|
punkweb_bb/migrations/0003_alter_thread_options.py,sha256=0xwVfSMWs28akDMhMwOdyyuC7JZ47JekkphT8fUCpcA,589
|
|
@@ -74,7 +74,7 @@ punkweb_bb/static/punkweb_bb/css/thread-form.css,sha256=9MfqocnamNMjeNJ-w6YTwYbm
|
|
|
74
74
|
punkweb_bb/static/punkweb_bb/css/thread.css,sha256=1E7FPNCmvLyOC6xSYmslVho6vde3-t1ex_Hz8GA1k6s,2032
|
|
75
75
|
punkweb_bb/static/punkweb_bb/css/typography.css,sha256=qbFGBcU-OOe7r41xeW0Gc_9x6yHxhh81XtswmFxgavc,448
|
|
76
76
|
punkweb_bb/static/punkweb_bb/css/variables.css,sha256=WphZPeJgeqMYy4JYaSTX0gX-JiZh8EJlhieGOGk75DA,1193
|
|
77
|
-
punkweb_bb/static/punkweb_bb/editor/bbcode-editor-content.css,sha256=
|
|
77
|
+
punkweb_bb/static/punkweb_bb/editor/bbcode-editor-content.css,sha256=kVycBvZMkoKFBx9V7f3eOhflK0QbEqpPtsZA_S8Fm6M,1568
|
|
78
78
|
punkweb_bb/static/punkweb_bb/editor/bbcode-editor-tags.js,sha256=pLgF7lIJnPQXpfqQnkTHBU5tjcvICDHpn2nhvzxwUqA,1624
|
|
79
79
|
punkweb_bb/static/punkweb_bb/editor/bbcode-editor.css,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
80
80
|
punkweb_bb/static/punkweb_bb/editor/bbcode-editor.js,sha256=_8McMObUj-Uj37awYk7dc4IQGfGCVYvhfdSFzwohRQU,473
|
|
@@ -293,7 +293,7 @@ punkweb_bb/templatetags/can_delete.py,sha256=NiFi_VH3KKaAYxdu9cZXR9gT9SNEeLAxnbx
|
|
|
293
293
|
punkweb_bb/templatetags/can_edit.py,sha256=CbnbCcmJkeHZbWbsMn5OmCXMBEa6N1KW6W1dHLQvdWM,133
|
|
294
294
|
punkweb_bb/templatetags/can_post.py,sha256=6J1ojqqyNX99DBZM30jQiirQxAyY5rMi05QXXQjJB7I,133
|
|
295
295
|
punkweb_bb/templatetags/humanize_int.py,sha256=C4KmDG0Jv6o8rwT1RXLdWoGLddJxMxgOoRV9I2598AM,248
|
|
296
|
-
punkweb_bb/templatetags/render.py,sha256=
|
|
296
|
+
punkweb_bb/templatetags/render.py,sha256=0uhYuB-FWTzIqgVXMdzVb_CS_e68pzrJ1xtMFvhVYeQ,1377
|
|
297
297
|
punkweb_bb/templatetags/styled_group_name.py,sha256=ybg2SnrXg8nyfZBZOW4L_IV-BlTPrs3EKZ48GsKd-3A,257
|
|
298
298
|
punkweb_bb/templatetags/styled_username.py,sha256=1bv6_ss8elDtuJosAYBlKagUciUXb_WlA5X8O4mKtLI,202
|
|
299
299
|
punkweb_bb/templatetags/__pycache__/__init__.cpython-311.pyc,sha256=VEPKwaIhqpKpSSJiotDYngAUdidDzR9PpPiHtKEl1jA,174
|
|
@@ -303,14 +303,14 @@ punkweb_bb/templatetags/__pycache__/can_post.cpython-311.pyc,sha256=1IU4-Ar-kwjn
|
|
|
303
303
|
punkweb_bb/templatetags/__pycache__/humanize_count.cpython-311.pyc,sha256=UKD6_5RX8YpYpg-LPrgGxBkW56THsbYY51cKTYdKwRY,621
|
|
304
304
|
punkweb_bb/templatetags/__pycache__/humanize_int.cpython-311.pyc,sha256=csY5ek-bevYVeM91hYFKozuKWXCTXb7M-7Bokwdxhrk,619
|
|
305
305
|
punkweb_bb/templatetags/__pycache__/markdown.cpython-311.pyc,sha256=gVou8LgnZCf7b5_D52rimaEICsav98nb1YJic10nQyA,1858
|
|
306
|
-
punkweb_bb/templatetags/__pycache__/render.cpython-311.pyc,sha256=
|
|
306
|
+
punkweb_bb/templatetags/__pycache__/render.cpython-311.pyc,sha256=HSBIb01Aa9FeBDCo6-zimK4o_-jdvlcrGkrEDGWjZVw,2425
|
|
307
307
|
punkweb_bb/templatetags/__pycache__/shoutbox_bbcode.cpython-311.pyc,sha256=h5Md024xXjG3N574GjQWR8u4c8UsCsiBWP_usQiJUdE,945
|
|
308
308
|
punkweb_bb/templatetags/__pycache__/shoutbox_render.cpython-311.pyc,sha256=FT-Y3-st8ZLrLNiWWlR308lMi7bmu57YyBpdmF_JEKQ,810
|
|
309
309
|
punkweb_bb/templatetags/__pycache__/styled_group_name.cpython-311.pyc,sha256=1rXkWaqTzivl0uvVs-UiPHOfvx7rOO4Kce6Elhoer_I,712
|
|
310
310
|
punkweb_bb/templatetags/__pycache__/styled_username.cpython-311.pyc,sha256=a91ogyUeLdHS9rEU28FWEYeVqcJopjbvPPdnGkmlHKI,628
|
|
311
311
|
punkweb_bb/templatetags/__pycache__/username.cpython-311.pyc,sha256=GvZkwtrFvkRr1RbxoejyKMmJXr01ABz3lVEwPNq4wxk,626
|
|
312
|
-
punkweb_bb-0.4.
|
|
313
|
-
punkweb_bb-0.4.
|
|
314
|
-
punkweb_bb-0.4.
|
|
315
|
-
punkweb_bb-0.4.
|
|
316
|
-
punkweb_bb-0.4.
|
|
312
|
+
punkweb_bb-0.4.2.dist-info/LICENSE,sha256=YYysF07B-kyXSO7IWFB9f49ZXa6LIFUTVsR1Ogmhp8s,1507
|
|
313
|
+
punkweb_bb-0.4.2.dist-info/METADATA,sha256=BBOBKMBfiSmIHsZjAQGR3-w7Z_L_8M3GIO2QpM6WeYA,5888
|
|
314
|
+
punkweb_bb-0.4.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
315
|
+
punkweb_bb-0.4.2.dist-info/top_level.txt,sha256=sWuGdGnk0ejOXiFDzlBqrNs2VbPEx0_i8UwWXn4SuHU,11
|
|
316
|
+
punkweb_bb-0.4.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|