X-Git-Url: http://iramuteq.org/git?p=iramuteq;a=blobdiff_plain;f=parse_factiva_xml.py;h=e127ae33138932157c6507041457db9d11cad4c9;hp=6eff72d8ea8d651bdc92f5f6e636d36c5ea6545b;hb=287f9e72c3e3d666b016dff0fa3dc39419adfcc2;hpb=69b6d701d4298a125c51cd0ac8e884359f93a6ad diff --git a/parse_factiva_xml.py b/parse_factiva_xml.py index 6eff72d..e127ae3 100644 --- a/parse_factiva_xml.py +++ b/parse_factiva_xml.py @@ -12,10 +12,11 @@ import re import wx from parse_factiva_mail import ParseFactivaMail from parse_factiva_txt import ParseFactivaPaste +from parse_europress import ParseEuropress from import_txm import TXM2IRA +from functions import BugReport def ParseDocument(filename) : - print filename with codecs.open(filename, 'r', 'utf-8') as f : content = f.read() content = content.replace('', ' ').replace('', ' ') @@ -83,13 +84,21 @@ class PrefImport(wx.Dialog): pre.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP) pre.Create(parent, -1, '', pos, size, style) self.PostCreate(pre) + self.methode = methode if methode in ['xml', 'txm'] : txt = _(u'Select a directory of xml files').decode('utf8') + elif methode == 'euro' : + txt = _(u'Select a directory of html files').decode('utf8') + elif methode == 'dmi' : + txt = _(u'Select a csv file').decode('utf8') else : txt = _(u'Select a directory of txt files').decode('utf8') self.parent = parent - self.txt1 = wx.StaticText(self, -1, txt.encode('utf8')) - self.dbb = filebrowse.DirBrowseButton(self, -1, size=(450, -1), changeCallback = self.fbbCallback) + self.txt1 = wx.StaticText(self, -1, txt) + if methode != 'dmi' : + self.dbb = filebrowse.DirBrowseButton(self, -1, size=(450, -1), changeCallback = self.fbbCallback) + else : + self.dbb = filebrowse.FileBrowseButton(self, -1, size=(450, -1), fileMode = 2, changeCallback = self.fbbCallback) self.dbb.SetLabel("") self.txt2 = wx.StaticText(self, -1, _(u'Output file').decode('utf8')) self.fbb = filebrowse.FileBrowseButton(self, -1, size=(450, -1), fileMode = 2) @@ -130,12 +139,22 @@ class PrefImport(wx.Dialog): def fbbCallback(self, evt): if self.fbb.GetValue() == "" : - self.fbb.SetValue(os.path.join(self.dbb.GetValue(), 'corpus.txt')) + if self.methode != 'dmi' : + self.fbb.SetValue(os.path.join(self.dbb.GetValue(), 'corpus.txt')) + else : + self.fbb.SetValue(os.path.join(os.path.dirname(self.dbb.GetValue()), 'corpus.txt')) #self.log.write('FileBrowseButton: %s\n' % evt.GetString()) def checkfile(self, evt) : if evt.GetId() == wx.ID_OK : if self.dbb.GetValue() != "" : + if self.methode == 'dmi' : + if not os.path.exists(self.dbb.GetValue()) : + dlg = wx.MessageDialog(self, + ' : '.join([self.dbb.GetValue(), _(u"this file doesn't exist")]), 'ATTENTION', wx.NO | wx.YES | wx.ICON_WARNING) + dlg.CenterOnParent() + if dlg.ShowModal() not in [wx.ID_NO, wx.ID_CANCEL]: + self.EndModal(wx.ID_OK) if os.path.exists(self.fbb.GetValue()): dlg = wx.MessageDialog(self, u"%s\nCe fichier existe, continuer quand même ?" % self.fbb.GetValue(), 'ATTENTION', wx.NO | wx.YES | wx.ICON_WARNING) @@ -152,8 +171,6 @@ class PrefImport(wx.Dialog): else : self.EndModal(wx.ID_CANCEL) - - class ImportFactiva(): def __init__(self, parent, methode): self.dial = PrefImport(parent, methode=methode) @@ -162,18 +179,40 @@ class ImportFactiva(): if val == wx.ID_OK : xmldir = self.dial.dbb.GetValue() corp_out = self.dial.fbb.GetValue() - if methode == 'xml' : - res = getcorpus_from_xml(xmldir, corp_out) - elif methode == 'mail' : - res = ParseFactivaMail(xmldir, corp_out, 'utf8', parent.syscoding) - elif methode == 'txt' : - res = ParseFactivaPaste(xmldir, corp_out, 'utf8', parent.syscoding) - elif methode == 'txm' : - res = TXM2IRA(xmldir, corp_out, 'utf8', parent.syscoding) - if res == 'nofile' : - dlg = wx.MessageDialog(parent, u"Pas de fichier \'.xml\' dans %s" % xmldir, 'ATTENTION', wx.OK | wx.NO_DEFAULT | wx.ICON_WARNING) - dlg.CenterOnParent() - dlg.ShowModal() - #else : - # parent.filename = corp_out - # parent.OpenText() + self.dial.Destroy() + busy = wx.BusyInfo(_("Please wait...").decode('utf8')) + wx.SafeYield() + try : + if methode == 'xml' : + res = getcorpus_from_xml(xmldir, corp_out) + elif methode == 'mail' : + res = ParseFactivaMail(xmldir, corp_out, 'utf8', parent.syscoding) + elif methode == 'txt' : + res = ParseFactivaPaste(xmldir, corp_out, 'utf8', parent.syscoding) + elif methode == 'txm' : + res = TXM2IRA(xmldir, corp_out, 'utf8', parent.syscoding) + elif methode == 'euro' : + res = ParseEuropress(xmldir, corp_out, 'utf8', 'utf8') + del busy + if res == 'nofile' : + dlg = wx.MessageDialog(parent, u"Pas de fichiers dans %s" % xmldir, 'ATTENTION', wx.OK | wx.ICON_WARNING) + dlg.CenterOnParent() + dlg.ShowModal() + dlg.Destroy() + else : + msg = '\n'.join([_(u"Corpus created :").decode('utf8'), corp_out, _(u"Do you want to open it in IRaMuTeQ ?").decode('utf8')]) + dlg = wx.MessageDialog(parent, msg, _(u'Information').decode('utf8'), wx.YES_NO | wx.ICON_INFORMATION | wx.STAY_ON_TOP) + dlg.CenterOnParent() + val = dlg.ShowModal() + if val == wx.ID_YES : + dlg.Destroy() + parent.filename = os.path.abspath(corp_out) + parent.OpenText() + else : + dlg.Destroy() + except : + del busy + BugReport(parent) + else : + self.dial.Destroy() +