/coding/walle_2.0/web/xmlworld/views.py
Python | 115 lines | 109 code | 3 blank | 3 comment | 1 complexity | 93d3b3391598ab14ad9843e2198ca06d MD5 | raw file
Possible License(s): LGPL-2.1
- # coding=utf-8
-
- import os
- from walle.web.xmlworld import xml_file_forms
- from walle.web.base_fs import get_request_value
- from walle.web.base_fs import base_response
- from walle.web.xmlworld import parse_catalog
- from walle.web import config
-
-
- def query_a_xml_file(request):
- # f = (r"E:\wps_\wps_Io\result_dir\20090717_175802\??????.xml").decode("utf-8")
- f = (r"e:\wps_\wps_Io\result_dir\20090720_163734\??????.xml").decode("utf-8")
- # print "request = ", request
- datas = get_request_value.get_all_value(request, {})
- f = datas.get(u'query_file_path', "").replace(u"__x__", u"\\")
- datas['query_file_path'] = datas.get(u'query_file_path', "")
- if not f:
- datas["text_values"] = "no select file"
- f = os.path.join(config.show_xml_file_dir, f)
- if os.path.isfile(f):
- if xml_file_forms.is_a_ok_xml_file(f):
- query_form = xml_file_forms.query_form(-1, f, request)
- datas["query_form"] = query_form
- elif not is_a_text_file(f):
- datas["text_values"] = "the file not a text file."
- else:
- fo = open(f, 'r')
- t = fo.read()
- fo.close()
- datas["text_values"] = ""
- try:
- datas["text_values"] = t.decode("utf-8")
- except:
- try:
- datas["text_values"] = t.decode("gbk")
- except:
- try:
- datas["text_values"] = t.decode("utf-16")
- except:
- datas["text_values"] = "text not utf-8, gbk or utf-16 code."
- if ".html" == os.path.splitext(f)[1].lower() or ".xml" == os.path.splitext(f)[1].lower():
- return base_response.return_HttpResponse(request, datas['text_values'])
-
- datas["text_values"] = datas["text_values"].replace("<", "<")
- datas["text_values"] = datas["text_values"].replace(">", ">")
- datas["text_values"] = datas["text_values"].replace("\n", "<br/>")
- datas["text_values"] = datas["text_values"].replace("\t", " ")
- else:
- datas["text_values"] = "not choose a file."
- # print "qqq datas = ", datas
- return base_response.return_response(request, 'xmlworld/query_a_xml_file.html', {"datas": datas})
-
- def main_board(request):
- datas = get_request_value.get_all_value(request)
- return base_response.return_response(request, 'xmlworld/main_board.html', {"datas": datas})
-
- def is_a_text_file(f):
- text_f_type = ['.log',
- '.txt' # normal
- , '.as', '.mx' # actionscript
- , '.ada', '.ads', '.adb' # ada
- , '.asm' # asm
- , '.asp' # asp
- , '.au3' # autoit
- , '.sh', '.bsh' # bash
- , '.bat', '.cmd', '.nt' # batch
- , '.c' # c
- , '.ml', '.mli', '.sml', '.thy' # caml
- , '.cmake' # cmake
- , '.h', '.hpp', '.hxx', '.cpp', '.cxx', '.cc' # cpp
- , '.cs' # cs
- , '.css' # css
- , '.diff', '.patch' # diff
- , '.f', '.for', '.f90', '.f95', '.f2k' # fortran
- , '.hs', '.lhs', '.as', '.las' # haskell
- , '.html', '.htm', '.shtml', '.shtm', '.xhtml' # html
- , '.ini', '.inf', '.reg', '.url' # ini
- , '.iss' # inno
- , '.java' # java
- , '.js' # javascript
- , '.kix' # kix
- , '.lsp', '.lisp' # lisp
- , '.lua' # lua
- , '.mak' # makefile
- , '.m' # matlab
- , '.nfo' # nfo
- , '.nsi', '.nsh' # nsis
- # objc
- , '.pas', '.inc' # pascal
- , '.pl', '.pm', '.plx' # perl
- , '.php', '.php3', '.phtml' # php
- , '.ps' # postscript
- , '.properties' # props
- , '.py', '.pyw' # python
- , '.rc' # rc
- , '.rb', '.rbw' # ruby
- , '.scm', '.smd', '.ss' # scheme
- , '.st' # smalltalk
- , '.sql' # sql
- , '.tcl' # tcl
- , '.tex' # tex
- , '.vb', '.vbs' # vb
- , '.v' # verilog
- , '.vhd', '.vhdl' # vhdl
- , '.xml', '.xsml', '.xsl', '.xsd', '.kml', '.wsdl' # xml
- , '.yml' # yaml
- ]
- ext = os.path.splitext(f)[1]
- # print ext, text_f_type
- if ext.lower() in text_f_type:
- return True
- return False
-
-