aboutsummaryrefslogtreecommitdiff
path: root/AptUrl/Helpers.py
diff options
context:
space:
mode:
Diffstat (limited to 'AptUrl/Helpers.py')
-rw-r--r--AptUrl/Helpers.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/AptUrl/Helpers.py b/AptUrl/Helpers.py
new file mode 100644
index 0000000..d00b862
--- /dev/null
+++ b/AptUrl/Helpers.py
@@ -0,0 +1,66 @@
+# Copyright (c) 2008 Canonical
+#
+# AUTHOR:
+# Siegfried-A. Gevatter <rainct@ubuntu.com>
+#
+# This file is part of AptUrl
+#
+# AptUrl is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as published
+# by the Free Software Foundation; either version 2 of the License, or (at
+# your option) any later version.
+#
+# AptUrl is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with AptUrl; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+import gettext
+import subprocess
+
+def _(str):
+ return utf8(gettext.gettext(str))
+
+def _n(singular, plural, n):
+ return utf8(gettext.ngettext(singular, plural, n))
+
+def utf8(str):
+ if str is bytes:
+ try:
+ return str.decode('UTF-8')
+ except UnicodeDecodeError:
+ # assume latin1 as fallback
+ return str.decode('latin1')
+ else:
+ return str
+
+def get_dist():
+ return subprocess.check_output(
+ 'lsb_release -c -s'.split(),
+ universal_newlines=True).strip()
+
+
+def parse_pkg(pkgobj):
+ summary = ""
+ description = ""
+ pkg_description = pkgobj.candidate.description
+ if pkg_description.count("\n") > 0:
+ summary, description = pkg_description.split('\n', 1)
+ else:
+ summary = pkg_description
+ lines = description.rstrip('\n').split('\n')
+ if len(lines) > 1 and lines[-1].startswith('Homepage: '):
+ homepage = lines[-1].split(' ', 1)[1]
+ description = '\n'.join(lines[:-1])
+ else:
+ homepage = pkgobj.candidate.homepage
+ return (summary, description, homepage)
+
+def format_description(description):
+ const = 'APTURL_DOUBLE_EMPTY_LINE_PLACEHOLDER'
+ return description.replace('\n\n', const).replace('\n', ' ').replace(
+ const, '\n\n')