Skip to content

Commit

Permalink
Initial commit. Wish you well - Amir
Browse files Browse the repository at this point in the history
  • Loading branch information
xtonousou committed Jun 23, 2017
1 parent 9e95e40 commit c7cfc21
Show file tree
Hide file tree
Showing 3 changed files with 233 additions and 0 deletions.
212 changes: 212 additions & 0 deletions grklsh.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
#!/usr/bin/env python2
# -*- coding: utf-8 -*-

import sys
import codecs as cs

py_script_version = '1.0.0'

vowelChars = {
'Ά': 'A',
'Α': 'A',
'ά': 'a',
'α': 'a',
'Έ': 'E',
'Ε': 'E',
'έ': 'e',
'ε': 'e',
'Ή': 'H',
'Η': 'H',
'ή': 'h',
'η': 'h',
'Ϊ': 'I',
'Ί': 'I',
'Ι': 'I',
'ΐ': 'i',
'ϊ': 'i',
'ί': 'i',
'ι': 'i',
'Ό': 'O',
'Ο': 'O',
'ό': 'o',
'ο': 'o',
'Ϋ': 'Y',
'Ύ': 'Y',
'Υ': 'Y',
'ΰ': 'y',
'ϋ': 'y',
'ύ': 'y',
'υ': 'y',
'Ώ': 'W',
'Ω': 'W',
'ώ': 'w',
'ω': 'w'
}

consonantChars = {
'Β': 'B',
'β': 'b',
'Γ': 'G',
'γ': 'g',
'Δ': 'D',
'δ': 'd',
'Ζ': 'Z',
'ζ': 'z',
'Θ': 'Th',
'θ': 'th',
'Κ': 'K',
'κ': 'k',
'Λ': 'L',
'λ': 'l',
'Μ': 'M',
'μ': 'm',
'Ν': 'N',
'ν': 'n',
'Ξ': 'Ks',
'ξ': 'ks',
'Π': 'P',
'π': 'p',
'Ρ': 'R',
'ρ': 'r',
'Σ': 'S',
'σ': 's',
'ς': 's',
'Τ': 'T',
'τ': 't',
'Φ': 'F',
'φ': 'f',
'Χ': 'X',
'χ': 'x',
'Ψ': 'Ps',
'ψ': 'ps'
}

symbolChars = {
';': '?',
'·': '-',
'«': '<<',
'»': '>>'
}

writeArgChars = {
'-w': 0,
'--write': 1
}

helpArgChars = {
'-h': 0,
'--help': 1
}

versionArgChars = {
'-v': 0,
'--version': 1
}

def version():
print py_script_version

return sys.exit()


def help():
print
print ' Version: ' + py_script_version
print
print ' Usage: grklsh [options]? file1 file2 fileN'
print
print ' Translate Greek into Greeklish and/or print on the standard output'
print
print ' Options:'
print ' -w, --write write to \'.grklsh\' files'
print ' -h, --help output usage information'
print ' -v, --version output the version number'
print

return sys.exit()


def readByCharToList(file_):
data = []
f = cs.open(file_, 'r', 'utf-8')

for line in f:
data.extend(line)

return data


def toGreeklish(list_):
flag = False
tmp = [None] * 999999 #TODO fix static malloc

for char in xrange(0, len(list_)):

uchar = list_[char].encode('utf-8')

if uchar in vowelChars:
tmp[char] = vowelChars.get(uchar)
elif uchar in consonantChars:
tmp[char] = consonantChars.get(uchar)
elif uchar in symbolChars:
tmp[char] = symbolChars.get(uchar)
else:
tmp[char] = list_[char]

if char == len(list_) - 1:
flag = True

return [c for c in tmp if c is not None], flag


def main(args):
flag = False

if not len(args) > 0:
while True:
try:
text = raw_input().decode('utf-8')
newData, isTranlated = toGreeklish(list(text))
print ''.join(newData)
except KeyboardInterrupt:
print 'exit'
sys.exit()

for arg in args:
if arg in writeArgChars:
if len(args) > 1:
flag = True
continue
else:
print 'You need to specify which files to translate'
sys.exit()
elif arg in helpArgChars:
help()
elif arg in versionArgChars:
version()

try:
# Translate list
newData, isTranlated = toGreeklish(readByCharToList(arg))

if not flag:
print 'File \'' + arg + '\'' + ':' + '\n'
print ''.join(newData)
print '----------------------------------------' + '\n'

elif flag:
if isTranlated:
print '\'' + arg + '\' file has been translated successfully'

# Write to file/s
f = cs.open(str(arg) + '.grklsh', 'w', 'utf-8')
flag = False
for char in xrange(0, len(newData)):
f.write(newData[char])
except IOError as e:
print "I/O error({0}): {1} {2}"\
.format(e.errno, e.strerror, '\'' + arg + '\'')


if __name__ == '__main__':
main(sys.argv[1:])
16 changes: 16 additions & 0 deletions sample.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Πράκτορες παρέκαμψαν τη χρέωση καρτών για την αγορά σνακ από τους αυτόματους πωλητές και τα έπαιρναν τζάμπα - Αποκαλύφθηκαν όταν μπήκαν κάμερες κοντά στα μηχανήματα και απολύθηκαν
H Κεντρική Υπηρεσία Πληροφοριών των ΗΠΑ (CIA) παραδέχθηκε ότι έπεσε θύμα, για ένα διάστημα πολλών μηνών το 2013, κλεφτών με ιδιαίτερο ταλέντο στην πληροφορική, οι οποίοι άρπαξαν... σνακ αξίας 3.300 δολαρίων από τα μηχανήματα αυτόματης πώλησης των γραφείων της.

Οι «κακοποιοί» έκλεβαν πατατάκια, σοκολάτες κι άλλα σνακ. Δεν επρόκειτο για μυστικούς πράκτορες ή πρώην κυνηγούς τζιχαντιστών αλλά για «υπεργολάβους» της CIA, όπως αποκαλύπτει έκθεση του γενικού επιθεωρητή της υπηρεσίας, η οποία δόθηκε αυτήν την εβδομάδα στη δημοσιότητα.

Η έκθεση είδε το φως της δημοσιότητας έπειτα από αίτηση του δημοσιογράφου του ενημερωτικού ιστότοπου BuzzFeed, Τζέισον Λίοπολντ, βάσει του νόμου για την ελευθερία της πληροφόρησης (Freedom of Information Act).

Οι πράκτορες πλήρωναν τα σνακ με μια προπληρωμένη κάρτα της εταιρείας FreedomPay. Ένας εξ αυτών ανακάλυψε ότι αποσυνδέοντας τα καλώδια από τα συστήματα άυλων πληρωμών της FreedomPay, τα μηχανήματα αυτόματης πώλησης δέχονταν κάρτες που δεν είχαν χρήματα.

Ο δράστης μοιράστηκε την ιδέα του με φίλους του, οι οποίοι με τη σειρά του, αποσύνδεαν από το δίκτυο τα μηχανήματα και προμηθεύονταν δωρεάν τα σνακ της αρεσκείας τους.
Η CIA μπόρεσε να ανακαλύψει την απάτη εγκαθιστώντας κάμερες κοντά στα μηχανήματα.

Ο κλέφτης «ομολόγησε ότι η ιδέα αυτή του ήρθε (…) λόγω των γνώσεών του για τα συστήματα πληροφορικής».
Τα μέλη του δικτύου εντοπίστηκαν, ανακρίθηκαν και κατόπιν απολύθηκαν.

ΠΗΓΗ: ΑΠΕ-ΜΠΕ
5 changes: 5 additions & 0 deletions sample2.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Η Python είναι μια υψηλού επιπέδου γλώσσα προγραμματισμού[1][2] η οποία δημιουργήθηκε από τον Ολλανδό Γκβίντο βαν Ρόσσουμ (Guido van Rossum) το 1990. Ο κύριος στόχος της είναι η αναγνωσιμότητα του κώδικά της και η ευκολία χρήσης της και το συντακτικό της επιτρέπει στους προγραμματιστές να εκφράσουν έννοιες σε λιγότερες γραμμές κώδικα απ'ότι θα ήταν δυνατόν σε γλώσσες όπως η C++ ή η Java.[3][4] Διακρίνεται λόγω του ότι έχει πολλές βιβλιοθήκες που διευκολύνουν ιδιαίτερα αρκετές συνηθισμένες εργασίες και για την ταχύτητα εκμάθησης της.

Οι διερμηνευτές της Python είναι διαθέσιμοι για εγκατάσταση σε πολλά λειτουργικά συστήματα, επιτρέποντας στην Python την εκτέλεση κώδικα σε ευρεία γκάμα συστημάτων. Χρησιμοποιώντας εργαλεία τρίτων, όπως το Py2exe ή το Pyinstaller,[5] ο κώδικας της Python μπορεί να πακεταριστεί σε αυτόνομα εκτελέσιμα προγράμματα για μερικά από τα πιο δημοφιλή λειτουργικά συστήματα, επιτρέποντας τη διανομή του βασισμένου σε Python λογισμικού για χρήση σε αυτά τα περιβάλλοντα χωρίς να απαιτείται εγκατάσταση του διερμηνευτή της Python.

Η Python αναπτύσσεται ως ανοιχτό λογισμικό (open source) και η διαχείρισή της γίνεται από τον μη κερδοσκοπικό οργανισμό Python Software Foundation. Ο κώδικας διανέμεται με την άδεια Python Software Foundation License η οποία είναι συμβατή με την GPL. Το όνομα της γλώσσας προέρχεται από την ομάδα άγγλων κωμικών Μόντυ Πάιθον.

0 comments on commit c7cfc21

Please sign in to comment.