1# randomname.py - topic extension 2# 3# This software may be used and distributed according to the terms of the 4# GNU General Public License version 2 or any later version. 5"""random topic generator utils 6""" 7 8import random 9 10animals = [ 11 b'aardvark', 12 b'albatross', 13 b'alligator', 14 b'alpaca', 15 b'ant', 16 b'anteater', 17 b'antelope', 18 b'ape', 19 b'armadillo', 20 b'baboon', 21 b'badger', 22 b'barracuda', 23 b'bat', 24 b'bear', 25 b'beaver', 26 b'bee', 27 b'beetle', 28 b'bison', 29 b'boar', 30 b'buffalo', 31 b'bushbaby', 32 b'bustard', 33 b'butterfly', 34 b'camel', 35 b'capuchin', 36 b'carabao', 37 b'caribou', 38 b'cat', 39 b'caterpillar', 40 b'cattle', 41 b'chameleon', 42 b'chamois', 43 b'cheetah', 44 b'chicken', 45 b'chimpanzee', 46 b'chinchilla', 47 b'chipmunk', 48 b'chough', 49 b'cicada', 50 b'clam', 51 b'cobra', 52 b'cockroach', 53 b'cod', 54 b'cormorant', 55 b'coyote', 56 b'crab', 57 b'crane', 58 b'cricket', 59 b'crocodile', 60 b'crow', 61 b'curlew', 62 b'deer', 63 b'dinosaur', 64 b'dog', 65 b'dogfish', 66 b'dolphin', 67 b'donkey', 68 b'dotterel', 69 b'dove', 70 b'dragon', 71 b'dragonfly', 72 b'duck', 73 b'dugong', 74 b'dunlin', 75 b'eagle', 76 b'echidna', 77 b'eel', 78 b'eland', 79 b'elephant', 80 b'elk', 81 b'emu', 82 b'falcon', 83 b'ferret', 84 b'finch', 85 b'fish', 86 b'flamingo', 87 b'fly', 88 b'fox', 89 b'frog', 90 b'gaur', 91 b'gazelle', 92 b'gecko', 93 b'gerbil', 94 b'giraffe', 95 b'gnat', 96 b'gnu', 97 b'goat', 98 b'goldfish', 99 b'goose', 100 b'gorilla', 101 b'goshawk', 102 b'grasshopper', 103 b'grouse', 104 b'guanaco', 105 b'guinea', 106 b'gull', 107 b'hamster', 108 b'hare', 109 b'hawk', 110 b'hedgehog', 111 b'heron', 112 b'herring', 113 b'hippopotamus', 114 b'hornet', 115 b'horse', 116 b'horsecrab', 117 b'hound', 118 b'hummingbird', 119 b'hyena', 120 b'hyrax', 121 b'ibex', 122 b'ibis', 123 b'iguana', 124 b'impala', 125 b'insect', 126 b'jackal', 127 b'jaguar', 128 b'jay', 129 b'jellyfish', 130 b'kangaroo', 131 b'koala', 132 b'kouprey', 133 b'kudu', 134 b'lapwing', 135 b'lark', 136 b'lemming', 137 b'lemur', 138 b'leopard', 139 b'lion', 140 b'lizard', 141 b'llama', 142 b'lobster', 143 b'locust', 144 b'loris', 145 b'louse', 146 b'lynx', 147 b'lyrebird', 148 b'magpie', 149 b'mallard', 150 b'mammoth', 151 b'manatee', 152 b'marten', 153 b'meerkat', 154 b'mink', 155 b'minnow', 156 b'mole', 157 b'mongoose', 158 b'monkey', 159 b'moose', 160 b'mosquito', 161 b'mouse', 162 b'mule', 163 b'muskrat', 164 b'narwhal', 165 b'newt', 166 b'nightingale', 167 b'numbat', 168 b'octopus', 169 b'okapi', 170 b'opossum', 171 b'oryx', 172 b'ostrich', 173 b'otter', 174 b'owl', 175 b'ox', 176 b'oyster', 177 b'panda', 178 b'panther', 179 b'parrot', 180 b'partridge', 181 b'peacock', 182 b'peafowl', 183 b'pelican', 184 b'penguin', 185 b'pheasant', 186 b'pig', 187 b'pigeon', 188 b'platypus', 189 b'pony', 190 b'porcupine', 191 b'porpoise', 192 b'puffin', 193 b'pug', 194 b'quagga', 195 b'quail', 196 b'quelea', 197 b'rabbit', 198 b'raccoon', 199 b'ram', 200 b'rat', 201 b'raven', 202 b'reindeer', 203 b'rhea', 204 b'rhinoceros', 205 b'rook', 206 b'ruff', 207 b'salamander', 208 b'salmon', 209 b'sambar', 210 b'sandpiper', 211 b'sardine', 212 b'scorpion', 213 b'seahorse', 214 b'seal', 215 b'serval', 216 b'shark', 217 b'sheep', 218 b'shrew', 219 b'shrimp', 220 b'skink', 221 b'skunk', 222 b'snail', 223 b'snake', 224 b'spider', 225 b'squid', 226 b'squirrel', 227 b'starling', 228 b'stinkbug', 229 b'stork', 230 b'swan', 231 b'tapir', 232 b'tarsier', 233 b'termite', 234 b'tern', 235 b'tiger', 236 b'toad', 237 b'trout', 238 b'turkey', 239 b'turtle', 240 b'unicorn', 241 b'viper', 242 b'vulture', 243 b'wallaby', 244 b'walrus', 245 b'wasp', 246 b'weasel', 247 b'whale', 248 b'wolf', 249 b'wolverine', 250 b'wombat', 251 b'woodchuck', 252 b'woodcock', 253 b'woodpecker', 254 b'worm', 255 b'wren', 256 b'yak', 257 b'zebra', 258 b'zorilla' 259] 260 261adjectives = [ 262 b'abiding', 263 b'abject', 264 b'ablaze', 265 b'able', 266 b'aboard', 267 b'abounding', 268 b'absorbed', 269 b'absorbing', 270 b'abstracted', 271 b'abundant', 272 b'acceptable', 273 b'accessible', 274 b'accurate', 275 b'acoustic', 276 b'adamant', 277 b'adaptable', 278 b'adhesive', 279 b'adjoining', 280 b'adorable', 281 b'adventurous', 282 b'affable', 283 b'affectionate', 284 b'agreeable', 285 b'alert', 286 b'alive', 287 b'alluring', 288 b'amazing', 289 b'ambiguous', 290 b'ambitious', 291 b'amiable', 292 b'amicable', 293 b'amused', 294 b'amusing', 295 b'ancient', 296 b'animated', 297 b'apricot', 298 b'appropriate', 299 b'aquatic', 300 b'arctic', 301 b'arenaceous', 302 b'aromatic', 303 b'aspiring', 304 b'assiduous', 305 b'assorted', 306 b'astonishing', 307 b'attractive', 308 b'auspicious', 309 b'automatic', 310 b'available', 311 b'average', 312 b'awake', 313 b'aware', 314 b'awesome', 315 b'axiomatic', 316 b'bashful', 317 b'bawdy', 318 b'beautiful', 319 b'beefy', 320 b'befitting', 321 b'beneficial', 322 b'benevolent', 323 b'bent', 324 b'best', 325 b'better', 326 b'bewildered', 327 b'bewitching', 328 b'big', 329 b'billowy', 330 b'bizarre', 331 b'black', 332 b'blithe', 333 b'blue', 334 b'blushing', 335 b'bouncy', 336 b'boundless', 337 b'brainy', 338 b'brash', 339 b'brave', 340 b'brawny', 341 b'brazen', 342 b'breezy', 343 b'brief', 344 b'bright', 345 b'brilliant', 346 b'broad', 347 b'brown', 348 b'bucolic', 349 b'bulky', 350 b'bumpy', 351 b'burgundy', 352 b'burly', 353 b'bustling', 354 b'busy', 355 b'calm', 356 b'capable', 357 b'capricious', 358 b'captivating', 359 b'carefree', 360 b'careful', 361 b'caring', 362 b'carrot', 363 b'ceaseless', 364 b'cerise', 365 b'certain', 366 b'challenging', 367 b'changeable', 368 b'charming', 369 b'cheerful', 370 b'chief', 371 b'chilly', 372 b'chipper', 373 b'classy', 374 b'clean', 375 b'clear', 376 b'clever', 377 b'cloudy', 378 b'coherent', 379 b'colorful', 380 b'colossal', 381 b'comfortable', 382 b'common', 383 b'communicative', 384 b'compassionate', 385 b'complete', 386 b'complex', 387 b'compulsive', 388 b'confused', 389 b'conscientious', 390 b'conscious', 391 b'conservative', 392 b'considerate', 393 b'convivial', 394 b'cooing', 395 b'cool', 396 b'cooperative', 397 b'coordinated', 398 b'courageous', 399 b'courteous', 400 b'crazy', 401 b'creative', 402 b'crispy', 403 b'crooked', 404 b'crowded', 405 b'cuddly', 406 b'cultured', 407 b'cunning', 408 b'curious', 409 b'curly', 410 b'curved', 411 b'curvy', 412 b'cut', 413 b'cute', 414 b'daily', 415 b'damp', 416 b'dapper', 417 b'dashing', 418 b'dazzling', 419 b'dear', 420 b'debonair', 421 b'decisive', 422 b'decorous', 423 b'deep', 424 b'defiant', 425 b'delicate', 426 b'delicious', 427 b'delighted', 428 b'delightful', 429 b'delirious', 430 b'descriptive', 431 b'detached', 432 b'detailed', 433 b'determined', 434 b'different', 435 b'diligent', 436 b'diminutive', 437 b'diplomatic', 438 b'discreet', 439 b'distinct', 440 b'distinctive', 441 b'dramatic', 442 b'dry', 443 b'dynamic', 444 b'dynamite', 445 b'eager', 446 b'early', 447 b'earthy', 448 b'easy', 449 b'easygoing', 450 b'eatable', 451 b'economic', 452 b'ecstatic', 453 b'educated', 454 b'efficacious', 455 b'efficient', 456 b'effortless', 457 b'eight', 458 b'elastic', 459 b'elated', 460 b'electric', 461 b'elegant', 462 b'elfin', 463 b'elite', 464 b'eminent', 465 b'emotional', 466 b'enchanted', 467 b'enchanting', 468 b'encouraging', 469 b'endless', 470 b'energetic', 471 b'enormous', 472 b'entertaining', 473 b'enthusiastic', 474 b'envious', 475 b'epicurean', 476 b'equable', 477 b'equal', 478 b'eternal', 479 b'ethereal', 480 b'evanescent', 481 b'even', 482 b'excellent', 483 b'excited', 484 b'exciting', 485 b'exclusive', 486 b'exotic', 487 b'expensive', 488 b'exquisite', 489 b'extroverted', 490 b'exuberant', 491 b'exultant', 492 b'fabulous', 493 b'fair', 494 b'faithful', 495 b'familiar', 496 b'famous', 497 b'fancy', 498 b'fantastic', 499 b'far', 500 b'fascinated', 501 b'fast', 502 b'fearless', 503 b'female', 504 b'fertile', 505 b'festive', 506 b'few', 507 b'fine', 508 b'first', 509 b'five', 510 b'fixed', 511 b'flamboyant', 512 b'flashy', 513 b'flat', 514 b'flawless', 515 b'flirtatious', 516 b'florid', 517 b'flowery', 518 b'fluffy', 519 b'fluttering', 520 b'foamy', 521 b'foolish', 522 b'foregoing', 523 b'fortunate', 524 b'four', 525 b'frank', 526 b'free', 527 b'frequent', 528 b'fresh', 529 b'friendly', 530 b'full', 531 b'functional', 532 b'funny', 533 b'furry', 534 b'future', 535 b'futuristic', 536 b'fuzzy', 537 b'gabby', 538 b'gainful', 539 b'garrulous', 540 b'general', 541 b'generous', 542 b'gentle', 543 b'giant', 544 b'giddy', 545 b'gifted', 546 b'gigantic', 547 b'gilded', 548 b'glamorous', 549 b'gleaming', 550 b'glorious', 551 b'glossy', 552 b'glowing', 553 b'godly', 554 b'good', 555 b'goofy', 556 b'gorgeous', 557 b'graceful', 558 b'grandiose', 559 b'grateful', 560 b'gratis', 561 b'gray', 562 b'great', 563 b'green', 564 b'gregarious', 565 b'grey', 566 b'groovy', 567 b'guiltless', 568 b'gusty', 569 b'guttural', 570 b'habitual', 571 b'half', 572 b'hallowed', 573 b'halting', 574 b'handsome', 575 b'happy', 576 b'hard', 577 b'hardworking', 578 b'harmonious', 579 b'heady', 580 b'healthy', 581 b'heavenly', 582 b'helpful', 583 b'hilarious', 584 b'historical', 585 b'holistic', 586 b'hollow', 587 b'honest', 588 b'honorable', 589 b'hopeful', 590 b'hospitable', 591 b'hot', 592 b'huge', 593 b'humorous', 594 b'hungry', 595 b'hushed', 596 b'hypnotic', 597 b'illustrious', 598 b'imaginary', 599 b'imaginative', 600 b'immense', 601 b'imminent', 602 b'impartial', 603 b'important', 604 b'imported', 605 b'impossible', 606 b'incandescent', 607 b'inconclusive', 608 b'incredible', 609 b'independent', 610 b'industrious', 611 b'inexpensive', 612 b'innate', 613 b'innocent', 614 b'inquisitive', 615 b'instinctive', 616 b'intellectual', 617 b'intelligent', 618 b'intense', 619 b'interesting', 620 b'internal', 621 b'intuitive', 622 b'inventive', 623 b'invincible', 624 b'jazzy', 625 b'jolly', 626 b'joyful', 627 b'joyous', 628 b'judicious', 629 b'juicy', 630 b'jumpy', 631 b'keen', 632 b'kind', 633 b'kindhearted', 634 b'kindly', 635 b'knotty', 636 b'knowing', 637 b'knowledgeable', 638 b'known', 639 b'laconic', 640 b'large', 641 b'lavish', 642 b'lean', 643 b'learned', 644 b'left', 645 b'legal', 646 b'level', 647 b'light', 648 b'likeable', 649 b'literate', 650 b'little', 651 b'lively', 652 b'living', 653 b'long', 654 b'longing', 655 b'loud', 656 b'lovely', 657 b'loving', 658 b'loyal', 659 b'lucky', 660 b'luminous', 661 b'lush', 662 b'luxuriant', 663 b'luxurious', 664 b'lyrical', 665 b'magenta', 666 b'magical', 667 b'magnificent', 668 b'majestic', 669 b'male', 670 b'mammoth', 671 b'many', 672 b'marvelous', 673 b'massive', 674 b'material', 675 b'mature', 676 b'meandering', 677 b'meaty', 678 b'medical', 679 b'mellow', 680 b'melodic', 681 b'melted', 682 b'merciful', 683 b'mighty', 684 b'miniature', 685 b'miniscule', 686 b'minor', 687 b'minute', 688 b'misty', 689 b'modern', 690 b'modest', 691 b'momentous', 692 b'motionless', 693 b'mountainous', 694 b'mute', 695 b'mysterious', 696 b'narrow', 697 b'natural', 698 b'near', 699 b'neat', 700 b'nebulous', 701 b'necessary', 702 b'neighborly', 703 b'new', 704 b'next', 705 b'nice', 706 b'nifty', 707 b'nimble', 708 b'nine', 709 b'nippy', 710 b'noiseless', 711 b'noisy', 712 b'nonchalant', 713 b'normal', 714 b'numberless', 715 b'numerous', 716 b'nutritious', 717 b'obedient', 718 b'observant', 719 b'obtainable', 720 b'oceanic', 721 b'omniscient', 722 b'one', 723 b'open', 724 b'opposite', 725 b'optimal', 726 b'optimistic', 727 b'opulent', 728 b'orange', 729 b'ordinary', 730 b'organic', 731 b'outgoing', 732 b'outrageous', 733 b'outstanding', 734 b'oval', 735 b'overjoyed', 736 b'overt', 737 b'palatial', 738 b'panoramic', 739 b'parallel', 740 b'passionate', 741 b'past', 742 b'pastoral', 743 b'patient', 744 b'peaceful', 745 b'perfect', 746 b'periodic', 747 b'permissible', 748 b'perpetual', 749 b'persistent', 750 b'petite', 751 b'philosophical', 752 b'physical', 753 b'picturesque', 754 b'pink', 755 b'pioneering', 756 b'piquant', 757 b'plausible', 758 b'pleasant', 759 b'plucky', 760 b'poised', 761 b'polite', 762 b'possible', 763 b'powerful', 764 b'practical', 765 b'precious', 766 b'premium', 767 b'present', 768 b'pretty', 769 b'previous', 770 b'private', 771 b'probable', 772 b'productive', 773 b'profound', 774 b'profuse', 775 b'protective', 776 b'proud', 777 b'psychedelic', 778 b'public', 779 b'pumped', 780 b'purple', 781 b'purring', 782 b'puzzled', 783 b'puzzling', 784 b'quaint', 785 b'quick', 786 b'quicker', 787 b'quickest', 788 b'quiet', 789 b'quirky', 790 b'quixotic', 791 b'quizzical', 792 b'rainy', 793 b'rapid', 794 b'rare', 795 b'rational', 796 b'ready', 797 b'real', 798 b'rebel', 799 b'receptive', 800 b'red', 801 b'reflective', 802 b'regular', 803 b'relaxed', 804 b'reliable', 805 b'relieved', 806 b'remarkable', 807 b'reminiscent', 808 b'reserved', 809 b'resolute', 810 b'resonant', 811 b'resourceful', 812 b'responsible', 813 b'rich', 814 b'ridiculous', 815 b'right', 816 b'rightful', 817 b'ripe', 818 b'ritzy', 819 b'roasted', 820 b'robust', 821 b'romantic', 822 b'roomy', 823 b'round', 824 b'royal', 825 b'ruddy', 826 b'rural', 827 b'rustic', 828 b'sable', 829 b'safe', 830 b'salty', 831 b'same', 832 b'satisfying', 833 b'savory', 834 b'scientific', 835 b'scintillating', 836 b'scrumptious', 837 b'second', 838 b'secret', 839 b'secretive', 840 b'seemly', 841 b'selective', 842 b'sensible', 843 b'separate', 844 b'shaggy', 845 b'shaky', 846 b'shining', 847 b'shiny', 848 b'short', 849 b'shy', 850 b'silent', 851 b'silky', 852 b'silly', 853 b'simple', 854 b'simplistic', 855 b'sincere', 856 b'six', 857 b'sizzling', 858 b'skillful', 859 b'sleepy', 860 b'slick', 861 b'slim', 862 b'smart', 863 b'smiling', 864 b'smooth', 865 b'soaring', 866 b'sociable', 867 b'soft', 868 b'solid', 869 b'sophisticated', 870 b'sparkling', 871 b'special', 872 b'spectacular', 873 b'speedy', 874 b'spicy', 875 b'spiffy', 876 b'spiritual', 877 b'splendid', 878 b'spooky', 879 b'spotless', 880 b'spotted', 881 b'square', 882 b'standing', 883 b'statuesque', 884 b'steadfast', 885 b'steady', 886 b'steep', 887 b'stimulating', 888 b'straight', 889 b'straightforward', 890 b'striking', 891 b'striped', 892 b'strong', 893 b'stunning', 894 b'stupendous', 895 b'sturdy', 896 b'subsequent', 897 b'substantial', 898 b'subtle', 899 b'successful', 900 b'succinct', 901 b'sudden', 902 b'super', 903 b'superb', 904 b'supreme', 905 b'swanky', 906 b'sweet', 907 b'swift', 908 b'sympathetic', 909 b'synonymous', 910 b'talented', 911 b'tall', 912 b'tame', 913 b'tan', 914 b'tangible', 915 b'tangy', 916 b'tasteful', 917 b'tasty', 918 b'telling', 919 b'temporary', 920 b'tempting', 921 b'ten', 922 b'tender', 923 b'terrific', 924 b'tested', 925 b'thankful', 926 b'therapeutic', 927 b'thin', 928 b'thinkable', 929 b'third', 930 b'thoughtful', 931 b'three', 932 b'thrifty', 933 b'tidy', 934 b'tiny', 935 b'toothsome', 936 b'towering', 937 b'tranquil', 938 b'tremendous', 939 b'tricky', 940 b'true', 941 b'truthful', 942 b'two', 943 b'typical', 944 b'ubiquitous', 945 b'ultra', 946 b'unassuming', 947 b'unbiased', 948 b'uncovered', 949 b'understanding', 950 b'understood', 951 b'unequaled', 952 b'unique', 953 b'unusual', 954 b'unwritten', 955 b'upbeat', 956 b'useful', 957 b'utopian', 958 b'utter', 959 b'uttermost', 960 b'valuable', 961 b'various', 962 b'vast', 963 b'verdant', 964 b'vermilion', 965 b'versatile', 966 b'versed', 967 b'victorious', 968 b'vigorous', 969 b'violet', 970 b'vivacious', 971 b'voiceless', 972 b'voluptuous', 973 b'wacky', 974 b'waiting', 975 b'wakeful', 976 b'wandering', 977 b'warm', 978 b'warmhearted', 979 b'wealthy', 980 b'whimsical', 981 b'whispering', 982 b'white', 983 b'whole', 984 b'wholesale', 985 b'whopping', 986 b'wide', 987 b'wiggly', 988 b'wild', 989 b'willing', 990 b'windy', 991 b'winsome', 992 b'wiry', 993 b'wise', 994 b'wistful', 995 b'witty', 996 b'womanly', 997 b'wonderful', 998 b'workable', 999 b'young', 1000 b'youthful', 1001 b'yummy', 1002 b'zany', 1003 b'zealous', 1004 b'zesty', 1005 b'zippy' 1006] 1007 1008def randomtopicname(ui): 1009 # Re-implement random.choice() in the way it was written in Python 2. 1010 def choice(things): 1011 return things[int(len(things) * random.random())] 1012 if ui.configint(b"devel", b"randomseed"): 1013 random.seed(ui.configint(b"devel", b"randomseed")) 1014 return choice(adjectives) + b"-" + choice(animals) 1015