SHOW:
|
|
- or go back to the newest paste.
| 1 | __author__ = 'Brad' | |
| 2 | import time | |
| 3 | import os | |
| 4 | import platform | |
| 5 | import subprocess | |
| 6 | import smtplib | |
| 7 | ||
| 8 | #external file applications | |
| 9 | from eret import errorcodes | |
| 10 | ||
| 11 | def cls(): | |
| 12 | os.system("clear")
| |
| 13 | def mail(): | |
| 14 | - | print("PythonOS Email Client v0.3")
|
| 14 | + | print("PCOS Email Client v0.3")
|
| 15 | print("--------------------------")
| |
| 16 | gmail_user = raw_input("Enter your email: ")
| |
| 17 | gmail_pwd = raw_input("Enter your email password: ")
| |
| 18 | FROM = gmail_user | |
| 19 | TO = [raw_input("Enter recipient email: ")] #must be a list
| |
| 20 | SUBJECT = raw_input("Enter email subject: ")
| |
| 21 | TEXT = raw_input("Enter message: ")
| |
| 22 | ||
| 23 | # Prepare actual message | |
| 24 | message = """\From: %s\nTo: %s\nSubject: %s\n\n%s | |
| 25 | """ % (FROM, ", ".join(TO), SUBJECT, TEXT) | |
| 26 | try: | |
| 27 | #server = smtplib.SMTP(SERVER) | |
| 28 | server = smtplib.SMTP("smtp.gmail.com", 587) #or port 465 doesn't seem to work!
| |
| 29 | server.ehlo() | |
| 30 | server.starttls() | |
| 31 | server.login(gmail_user, gmail_pwd) | |
| 32 | server.sendmail(FROM, TO, message) | |
| 33 | #server.quit() | |
| 34 | server.close() | |
| 35 | print 'successfully sent the mail' | |
| 36 | except: | |
| 37 | print (errorcodes(2)) | |
| 38 | osScreen2() | |
| 39 | def count(): | |
| 40 | cls() | |
| 41 | cend = float(raw_input("Count to what number?: "))
| |
| 42 | cls() | |
| 43 | crate = float(raw_input("Count by?: "))
| |
| 44 | cls() | |
| 45 | cstart = float(raw_input("Count from?: "))
| |
| 46 | cls() | |
| 47 | choice = raw_input("Write to file?(Y/N): ").lower()
| |
| 48 | cls() | |
| 49 | if choice == "y": | |
| 50 | fname = raw_input("Enter the name of the file to write to: ")
| |
| 51 | cls() | |
| 52 | open(fname, "w").close() | |
| 53 | cfile = open(fname, "r+") | |
| 54 | x = cstart | |
| 55 | while x <= cend: | |
| 56 | if choice == "y": | |
| 57 | cfile.write(str(x) + ", ") | |
| 58 | cfile.flush() | |
| 59 | else: | |
| 60 | print(x) | |
| 61 | print(x) | |
| 62 | x += crate | |
| 63 | osScreen2() | |
| 64 | def calculator(): | |
| 65 | cls() | |
| 66 | function = raw_input("add, subtract, multiply, or divide?: ")
| |
| 67 | if function == "add": | |
| 68 | cls() | |
| 69 | print("Insert first number: ")
| |
| 70 | x = float(raw_input()) | |
| 71 | cls() | |
| 72 | print("Insert second number: ")
| |
| 73 | y = float(raw_input()) | |
| 74 | cls() | |
| 75 | add = float(x) + float(y) | |
| 76 | print(str(x) + " + " + str(y) + " = " + str(add)) | |
| 77 | elif function == "subtract": | |
| 78 | cls() | |
| 79 | x = float(raw_input("Insert first number: "))
| |
| 80 | cls() | |
| 81 | y = float(raw_input("Insert second number: "))
| |
| 82 | cls() | |
| 83 | add = float(x) - float(y) | |
| 84 | print(str(x) + " - " + str(y) + " = " + str(add)) | |
| 85 | elif function == "multiply": | |
| 86 | cls() | |
| 87 | x = int(raw_input("Insert first factor: "))
| |
| 88 | cls() | |
| 89 | y = int(raw_input("Insert second factor: "))
| |
| 90 | cls() | |
| 91 | add = float(x) * float(y) | |
| 92 | print(str(x) + " x " + str(y) + " = " + str(add)) | |
| 93 | elif function == "divide": | |
| 94 | cls() | |
| 95 | x = float(raw_input("Insert numerator: "))
| |
| 96 | cls() | |
| 97 | y = float(raw_input("Insert denominator: "))
| |
| 98 | cls() | |
| 99 | add = float(x) / float(y) | |
| 100 | print(str(x) + " / " + str(y) + " = " + str(add)) | |
| 101 | else: | |
| 102 | print("invalid operation")
| |
| 103 | calculator() | |
| 104 | osScreen2() | |
| 105 | def view(): | |
| 106 | name = raw_input("Insert the name of the file you would like to open(inlude any extensions): ")
| |
| 107 | ||
| 108 | if name == "pass.txt" or name == "state.txt": | |
| 109 | print(errorcodes(1)) | |
| 110 | view() | |
| 111 | ||
| 112 | else: | |
| 113 | try: | |
| 114 | fdata = open(name, "r+").read() | |
| 115 | except IOError: | |
| 116 | cls() | |
| 117 | print("Invalid file name")
| |
| 118 | time.sleep(2) | |
| 119 | cls() | |
| 120 | view() | |
| 121 | cls() | |
| 122 | print("The file contains:")
| |
| 123 | print("")
| |
| 124 | print(fdata) | |
| 125 | osScreen2() | |
| 126 | def rstusr(): | |
| 127 | cls() | |
| 128 | f1 = open("usr.txt", "r+")
| |
| 129 | username = f1.read() | |
| 130 | us1 = raw_input("Enter your old username: ")
| |
| 131 | if us1 == username: | |
| 132 | cls() | |
| 133 | dp = raw_input("Enter your new username: ")
| |
| 134 | open("usr.txt", 'w').close()
| |
| 135 | f3 = open("usr.txt", "r+")
| |
| 136 | f3.write(dp) | |
| 137 | f3.flush() | |
| 138 | cls() | |
| 139 | print("Username Reset")
| |
| 140 | time.sleep(1) | |
| 141 | cls() | |
| 142 | osScreen2() | |
| 143 | else: | |
| 144 | cls() | |
| 145 | print("Username does not exist")
| |
| 146 | time.sleep(1) | |
| 147 | osScreen() | |
| 148 | ||
| 149 | def new(): | |
| 150 | name = raw_input("Insert name of new file (use .txt if you want a text file): ")
| |
| 151 | if name == "pass.txt" or name == "state.txt": | |
| 152 | print(errorcodes(1)) | |
| 153 | new() | |
| 154 | else: | |
| 155 | open(name, "w").close() | |
| 156 | file1 = open(name, "r+") | |
| 157 | cls() | |
| 158 | print("PyEdit v0.1.1")
| |
| 159 | print("Enter text to be written to file then press 'Enter'")
| |
| 160 | print(" ")
| |
| 161 | print(" ")
| |
| 162 | data = raw_input() | |
| 163 | file1.write(data) | |
| 164 | file1.flush() | |
| 165 | file1.close() | |
| 166 | osScreen2() | |
| 167 | ||
| 168 | ||
| 169 | # the say command------------------------- | |
| 170 | def say(): | |
| 171 | sent = raw_input("Say what?: ")
| |
| 172 | print(sent) | |
| 173 | osScreen2() | |
| 174 | def cpuname(): | |
| 175 | if platform.system() == "Windows": | |
| 176 | return platform.processor() | |
| 177 | elif platform.system() == "Darwin": | |
| 178 | return subprocess.check_output(['/usr/sbin/sysctl', "-n", "machdep.cpu.brand_string"]).strip() | |
| 179 | elif platform.system() == "Linux": | |
| 180 | command = "cat /proc/cpuinfo" | |
| 181 | return subprocess.check_output(command, shell=True).strip() | |
| 182 | return "" | |
| 183 | def sysinfo(): | |
| 184 | print("OS name: " + platform.release())
| |
| 185 | print("OS type: " + platform.system())
| |
| 186 | print("OS version: " + platform.version())
| |
| 187 | print("CPU: " + cpuname())
| |
| 188 | print("CPU type: " + platform.machine())
| |
| 189 | print("Python version: " + platform.python_version())
| |
| 190 | print("Network name: " + platform.node())
| |
| 191 | osScreen2() | |
| 192 | #--------------------------the resetpw command-------------------------- | |
| 193 | def pwreset(): | |
| 194 | cls() | |
| 195 | f1 = open("pass.txt", "r+")
| |
| 196 | password = f1.read() | |
| 197 | ps = raw_input("Enter your old password: ")
| |
| 198 | if ps == password: | |
| 199 | cls() | |
| 200 | dp = raw_input("Enter your new password: ")
| |
| 201 | open("pass.txt", 'w').close()
| |
| 202 | f2 = open("pass.txt", "r+")
| |
| 203 | f2.write(dp) | |
| 204 | f2.flush() | |
| 205 | open("state.txt", "w").close()
| |
| 206 | oss = open("state.txt", "r+")
| |
| 207 | oss.write("osState: 0")
| |
| 208 | cls() | |
| 209 | print("Password Reset")
| |
| 210 | time.sleep(1) | |
| 211 | cls() | |
| 212 | osScreen2() | |
| 213 | else: | |
| 214 | cls() | |
| 215 | print("Passcode Incorrect")
| |
| 216 | time.sleep(1) | |
| 217 | osScreen() | |
| 218 | #-------------------------------------------------------------------------- | |
| 219 | #---------------the coms command------------------------------------------- | |
| 220 | def commands(): | |
| 221 | print("commands: exit, mail, resetpw, rstusr, coms, clearsc, say, calc, new, view, sysinf, count")
| |
| 222 | # -------------------the loading account screen ---------------------------- | |
| 223 | def loadOS(): | |
| 224 | cls() | |
| 225 | print("loading your POS account.")
| |
| 226 | time.sleep(1) | |
| 227 | cls() | |
| 228 | print("loading your POS account..")
| |
| 229 | time.sleep(1) | |
| 230 | cls() | |
| 231 | print("loading your POS account...")
| |
| 232 | time.sleep(1) | |
| 233 | osScreen() | |
| 234 | #------------------------------------------------------------------------------ | |
| 235 | #---------------the command interpreter---------------------------------------- | |
| 236 | def osScreen(): | |
| 237 | cls() | |
| 238 | - | print("POS V 0.2.3 on " + platform.system() + " version: " + platform.version())
|
| 238 | + | print("PCOS V 0.2.3 on " + platform.system() + " version: " + platform.version())
|
| 239 | print("for a list of commands type 'coms'")
| |
| 240 | osScreen2() | |
| 241 | def osScreen2(): | |
| 242 | command = raw_input("> ")
| |
| 243 | if command == "exit": | |
| 244 | exit() | |
| 245 | elif command == "resetpw": | |
| 246 | pwreset() | |
| 247 | osScreen2() | |
| 248 | elif command == "coms": | |
| 249 | commands() | |
| 250 | osScreen2() | |
| 251 | elif command == "mail": | |
| 252 | mail() | |
| 253 | elif command == "count": | |
| 254 | count() | |
| 255 | elif command == "clearsc": | |
| 256 | cls() | |
| 257 | osScreen2() | |
| 258 | elif command == "say": | |
| 259 | say() | |
| 260 | elif command == "rstusr": | |
| 261 | rstusr() | |
| 262 | elif command == "calc": | |
| 263 | calculator() | |
| 264 | elif command == "sysinf": | |
| 265 | sysinfo() | |
| 266 | elif command == "new": | |
| 267 | new() | |
| 268 | elif command == "view": | |
| 269 | view() | |
| 270 | else: | |
| 271 | print("Unknown command")
| |
| 272 | osScreen2() | |
| 273 | def first(): | |
| 274 | try: | |
| 275 | f1 = open("pass.txt")
| |
| 276 | setpass = f1.read() | |
| 277 | f1.close() | |
| 278 | print("Welcome to POS")
| |
| 279 | print("--------------")
| |
| 280 | state = open("state.txt", "r+")
| |
| 281 | st = state.read() | |
| 282 | if st == "osState: 1": | |
| 283 | print("WARNING: using default os passcode")
| |
| 284 | print("----------------------------------")
| |
| 285 | us = raw_input("Enter Username: ")
| |
| 286 | if us in open("usr.txt").read():
| |
| 287 | cls() | |
| 288 | print("Welcome to POS")
| |
| 289 | print("--------------")
| |
| 290 | if st == "osState: 1": | |
| 291 | print("WARNING: using default os passcode")
| |
| 292 | print("----------------------------------")
| |
| 293 | password = raw_input("Enter Password: ")
| |
| 294 | ||
| 295 | if password == setpass: | |
| 296 | loadOS() | |
| 297 | else: | |
| 298 | cls() | |
| 299 | print("Code Incorrect")
| |
| 300 | time.sleep(3) | |
| 301 | first() | |
| 302 | else: | |
| 303 | cls() | |
| 304 | print("User does not exist")
| |
| 305 | time.sleep(3) | |
| 306 | cls() | |
| 307 | first() | |
| 308 | except IOError: | |
| 309 | print("Creating system files...")
| |
| 310 | time.sleep(3) | |
| 311 | cls() | |
| 312 | open("pass.txt", "w").close()
| |
| 313 | p1 = open("pass.txt", "r+")
| |
| 314 | p1.write("password")
| |
| 315 | p1.flush() | |
| 316 | open("usr.txt", "w").close()
| |
| 317 | p1 = open("usr.txt", "r+")
| |
| 318 | p1.write("user")
| |
| 319 | p1.flush() | |
| 320 | open("state.txt", "w").close()
| |
| 321 | f1 = open("state.txt", "r+")
| |
| 322 | f1.write("osState: 1")
| |
| 323 | f1.flush() | |
| 324 | print("done")
| |
| 325 | time.sleep(1) | |
| 326 | cls() | |
| 327 | first() | |
| 328 | first() |